У меня рутированная Galaxy S 2 (I9100), и мне было интересно, могу ли я перезапустить Bluetooth на моем телефоне через клиент терминала на моем телефоне.
8
Следующая команда терминала должна включить Bluetooth через оболочку adb или приложение Terminal Emulator:
su
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
В большинстве версий Android эта команда отображает всплывающее окно для пользователя с просьбой подтвердить запрос на включение BT. Я считаю, что это было сделано в целях безопасности всякий раз, когда приложение, которое не является системой, переключает BT.
Я не нашел способ отключить BT с помощью команды оболочки, к сожалению.
С WiFi это намного проще и не запрашивает у пользователя разрешения:
su
svc wifi enable
включит его и
su
svc wifi disable
выключу его.
в android.bluetooth.IBluetoothManager, там несколько параметров
android.os.IBinder.FIRST_CALL_TRANSACTION = 1
ТАК, с рутованным устройством, если вы хотите отключить Bluetooth в режиме супер пользователя adb shell (su)
если вы хотите снова включить Bluetooth
источник
Service bluetooth_manager does not exist
на Android 4.1.2Включить Bluetooth:
service call bluetooth 3
Отключить Bluetooth:
service call bluetooth 4
источник
su
- так что технически ничего плохого AFAIK.service call bluetooth 5
работает в моем Android 4.2.1, чтобы отключить Bluetooth.Это работает из оболочки:
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE & input keyevent 20 & adb shell input keyevent 21 & adb shell input keyevent 23
В основном это вызывает появление диалога, а затем отправляет нажатия клавиш, чтобы принять команду
источник
Мое решение работает.
Обратите внимание, что когда вы выполняете первую команду, она выскакивает из окна и просит вас выбрать ALLOW.
Так что вам нужна команда автоматического нажатия.
Вы можете получить положение X, Y, включив «Параметры разработчика» -> «Расположение указателя», затем нажмите кнопку «Разрешить».
источник