Как отключить радиосигнал через adb без режима полета?

Поскольку я пытаюсь создать сценарий для перезапуска радиосигнала и не использую USB-кабель для adb, мне нужно отключить мобильный сигнал БЕЗ использования самолета (потому что я использую точку доступа Wi-Fi и Wi-Fi ADB).

Есть ли решение для этого? У меня есть root и wifi adb, которые работают без сбоев ... и я видел какое-то решение, например, отключение мобильных данных и т. Д., Но этого мне недостаточно. Мой оператор иногда перестает предоставлять мне мобильную связь, и единственный способ получить активные мобильные данные — это перезапустить радиосигнал (так же, как если бы я набрал # #4636*#*# и нажал «выключить/включить радио»). кнопка).

Также, если возможно, после отключения радиосигнала мне нужно будет подождать +- 10 секунд, прежде чем продолжить (я полагаю, что команда для этого - сон 10).

Спасибо

PS: Android Lollipop 5.1.1 (Xperia Z1)

Ответы (1)

Мне нужно отключить мобильный сигнал БЕЗ использования самолета (потому что я использую точку доступа Wi-Fi и Wi-Fi ADB).

Вы можете настроить свое устройство, чтобы оно не отключало Wi-Fi (включая точку доступа) при активации режима полета.

( Примечание: я тестировал решение на 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( база данных приложения Settings Storage ).

Настройте на ПК, включите отладку по 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'"

(См. Использование настроек и команды содержимого с использованием настроек оболочки adb и содержимого оболочки adb )

Учитывая команду, которую вы выполнили, вы увидите что-то вроде (любой из результатов):

cell,bluetooth,wifi,nfc,wimax
Row: 0 name=airplane_mode_radios, value=cell,bluetooth,wifi,nfc,wimax

Вы можете удалить 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/Hotspot не выключался.

Необходимость использования ADB была предназначена только один раз. Если вы решите отключить Wi-Fi, когда режим полета станет активным, просто добавьте wifiзначение этого ключа.

Ответ, первоначально написанный для Возможно ли включить режим полета только с включенным WiFi?

Спасибо! В дополнение к этому, для функции включения и выключения самолета я следовал этому Как отключить сотовое радио в Lollipop / JellyBean с помощью adb? добавляя только ADB SHEEL перед каждой командой. :D
Ах, это то, что мне было нужно неделю назад. Если вы просто обновите поля в базе данных, она активируется только после перезагрузки. Спорим, твоему это не нужно :)