Ich habe ein verwurzeltes Galaxy S 2 (I9100) und habe mich gefragt, ob ich das Bluetooth auf meinem Telefon über den Terminal-Client auf meinem Telefon neu starten kann.
Ich habe ein verwurzeltes Galaxy S 2 (I9100) und habe mich gefragt, ob ich das Bluetooth auf meinem Telefon über den Terminal-Client auf meinem Telefon neu starten kann.
Antworten:
Der folgende Terminalbefehl sollte Bluetooth über die ADB-Shell oder die Terminal Emulator-App aktivieren:
su
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
In den meisten Android-Versionen zeigt dieser Befehl dem Benutzer ein Popup-Fenster an, in dem er aufgefordert wird, die Anforderung zum Aktivieren von BT zu bestätigen. Ich glaube, dies wurde aus Sicherheitsgründen getan, wenn eine App, die kein System ist, BT umschaltet.
Ich habe leider keine Möglichkeit gefunden, BT über einen Shell-Befehl zu deaktivieren.
Mit WiFi ist es viel einfacher und fordert den Benutzer nicht zur Erlaubnis auf:
su
svc wifi enable
wird es einschalten, und
su
svc wifi disable
wird es ausschalten.
In android.bluetooth.IBluetoothManager gibt es einige Parameter
TRANSACTION_registerAdapter = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0); TRANSACTION_unregisterAdapter = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1); TRANSACTION_registerStateChangeCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2); TRANSACTION_unregisterStateChangeCallback = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3); TRANSACTION_isEnabled = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4); TRANSACTION_enable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5); TRANSACTION_enableNoAutoConnect = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6); TRANSACTION_disable = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
TRANSACTION_getAddress = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8); TRANSACTION_getName = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9);
android.os.IBinder.FIRST_CALL_TRANSACTION = 1
SO, mit gerootetem Gerät, wenn Sie Bluetooth im ADB Shell Super User-Modus (su) ausschalten möchten
service call bluetooth_manager 8
Wenn Sie Bluetooth wieder einschalten möchten
service call bluetooth_manager 6
Service bluetooth_manager does not exist
auf Android 4.1.2
Bluetooth aktivieren:
service call bluetooth 3
Bluetooth deaktivieren:
service call bluetooth 4
su
- also technisch nichts falsches AFAIK.
service call bluetooth 5
funktioniert in meinem Android 4.2.1, um Bluetooth zu deaktivieren.
Dies funktioniert aus einer Shell:
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE &
input keyevent 20 & adb shell input keyevent 21 & adb shell input keyevent 23
Grundsätzlich wird der Dialog angezeigt und anschließend werden Tastenanschläge gesendet, um den Befehl zu akzeptieren
Meine Lösung funktioniert.
am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
sleep 1
input tap 872 1072
Beachten Sie, dass beim Ausführen des ersten Befehls ein Fenster herausspringt und Sie aufgefordert werden, ALLOW auszuwählen.
Sie benötigen also den Befehl zum automatischen Klicken.
Sie können die X-, Y-Position ermitteln, indem Sie die Entwickleroptionen-> Zeigerposition aktivieren und dann die Schaltfläche ALLOW berühren.