Можно ли включить режим полета только при включенном WiFi?
Ну да, возможно на всех моих устройствах под управлением Android 4.2.1, 4.4.2, 5.0.2 и 5.1.1. Это относится и к портативной точке доступа.
Радиостанции, которые должны быть отключены при включении режима полета, сохраняются в ключе airplane_mode_radios
под таблицей global
внутри /data/data/com.android.settings/databases/settings.db
( база данных приложения Storage Storage ).
Настройте adb на ПК, включите отладку по USB на устройстве, подключите его к ПК, запустите оболочку и введите:
adb shell settings get global airplane_mode_radios
adb shell content query --uri content://settings/global --projection name:value --where "name='airplane_mode_radios'"
При выполнении команды вы увидите (любой из результатов) что-то вроде:
cell,bluetooth,wifi,nfc,wimax
Row: 0 name=airplane_mode_toggleable_radios, value=bluetooth,wifi,nfc
Вы можете удалить wifi
из значения для достижения конечной цели.
Введите любую из команд:
adb shell settings put global airplane_mode_radios "cell,bluetooth,nfc,wimax"
adb shell content update --uri content://settings/global --bind value:s:'cell,bluetooth,nfc,wimax' --where "name='airplane_mode_radios'"
Примечание. Не копируйте и не вставляйте. Обратите внимание на строку, которую вы получили в первом выводе. Затем удалите wifi,
из него и затем передайте результат между двойными кавычками, ""
как я показал выше.
Теперь вы можете включить Wi-Fi, а затем режим полета. Ваш Wi-Fi не выключится.
Необходимость использования ADB была предусмотрена только один раз. Если вы решите остановить Wi-Fi, когда активируется режим полета, просто увеличьте значение wifi
этого ключа.
Все хорошо здесь!
Ты знаешь?
Причина, по которой вы можете переключать Wi-Fi, Bluetooth и NFC вручную, даже когда включен режим полета, заключается в том, что они указаны в значении для ключа airplane_mode_toggleable_radios
.
Введите любую из команд:
adb shell settings get global airplane_mode_toggleable_radios
adb shell content query --uri content://settings/global --projection name:value --where "name='airplane_mode_toggleable_radios'"
Вы увидите (любой из них) что-то вроде:
bluetooth,wifi,nfc
Row: 0 name=airplane_mode_toggleable_radios, value=bluetooth,nfc
Удалите радио из значения этого ключа, например, wifi
и вы не сможете снова включить это радио (Wi-Fi здесь), когда активирован режим полета, несмотря ни на что, если, конечно, вы не отмените изменения в значении этого ключа.