Что делает параметр «Агрессивная передача Wi-Fi на сотовую связь» в настройках разработчика?

В Android Lollipop 5.0 я заметил, что в «Параметры разработчика» есть флажок «Агрессивная передача Wi-Fi на сотовую связь», который по умолчанию не установлен. Кто-нибудь знает, что делает этот параметр и почему он отключен по умолчанию и скрыт в параметрах разработчика?

Судя по названию опции, кажется, что включение этой опции делает телефон более счастливым для использования сотовых данных при плохом сигнале Wi-Fi.

Ответы (3)

Код shouldSwitchNetwork()лучше всего объясняет, что он делает. Он просто искусственно уменьшает WiFi RSSI (индикатор уровня принимаемого сигнала), чтобы побудить конечный автомат WiFi принять решение о переключении соединения с WiFi на сотовую сеть. Около строки 3559 файла WifiStateMachine.java ( строка 4262 для Android 6.0.1_r10):

int rssi = mWifiInfo.getRssi() - 6 * mAggressiveHandover
        + (homeNetworkBoost ? WifiConfiguration.HOME_NETWORK_RSSI_BOOST : 0);

Эта переменная mAggressiveHandoverимеет intзначение 0 или 1 в настройках разработчика :

private void writeWifiAggressiveHandoverOptions() {
    mWifiManager.enableAggressiveHandover(mWifiAggressiveHandover.isChecked() ? 1 : 0);
}

Переменная rssiпродолжает влиять на то, как классифицируется соединение: isBadRSSI, isLowRSSI, или isHighRSSI.

Что касается того, почему он скрыт в параметрах разработчика, я бы сказал, потому что он кажется немного хакерским, с, казалось бы, произвольным скаляром (6), который придумал какой-то разработчик, чтобы подтолкнуть поведение в желаемом направлении. Google, вероятно, не уверен в последствиях этой настройки и оптимальном способе настройки rssi. Если я ошибаюсь и это имеет какое-то значение, я с радостью признаю это и объясню здесь, почему.

Отключение этого параметра НЕ отключает сотовую передачу обслуживания полностью . Соединение WiFi по-прежнему получает оценку и отключается, если оценка слишком низкая. Но эй, первоначальный счет тоже устанавливается произвольно.

Wifi to Cellular Handover — это функция телефонов, которая автоматически переключается на сотовые данные, когда у вас нет надежного соединения WiFi. Вы хотели бы включить это по нескольким причинам:

  • Это сэкономит заряд батареи. Если ваш телефон не переключается на сотовые данные, когда он не может подключиться к Wi-Fi-соединению, ваш телефон будет продолжать поиск WiFi, таким образом используя батарею.
  • Вам не придется отключать Wi-Fi, когда вы выходите из дома или когда у вас нет подключения, чтобы использовать данные.
Таким образом, отключенная функция «Агрессивная передача Wi-Fi на сотовую связь» полностью отключает эту функцию? или это просто изменяет поведение, чтобы иметь более высокую отсечку при переключении с Wi-Fi на сотовую связь?

Нет, эта функция НЕ отключается полностью и не включается путем ее включения, ее можно ТОЛЬКО ВКЛЮЧИТЬ/ВЫКЛЮЧИТЬ в меню «Настройки» → «Wi-Fi» → «Расширенное меню Wi-Fi» (значок с тремя точками в правом верхнем углу). угол), а затем установите флажок рядом с «Smart Switch» (Verizon Samsung Galaxy Note 4 Android 5.1.1), в противном случае единственное , что вы честно делаете через меню разработчиков, — это просто заставляете работать эту же самую опцию, если / когда ваш телефон испытывает какой -либо сетевой «сбой» , и он каким-то образом забывает изменить тип сети. Я полагаю, вы могли бы думать об этом как о резком или резком напоминании системе изменить свое интернет-соединение с Wi-Fi на сотовые данные и/или наоборот.

Спасибо за попытку помочь ОП, но этот вопрос был задан 1 год назад, и читателям трудно понять ваш ответ. Можете ли вы отредактировать свой пост, чтобы правильно использовать маркеры и / или кодовые обозначения?