2013-08-28 22 views
5

Czy można uruchomić Bluetooth z ADB bez interwencji użytkownika? Próbowałem:Uruchomić Bluetooth z ADB lub przy starcie?

am start -a android.bluetooth.adapter.action.REQUEST_ENABLE 

, ale wymaga to naciśnięcia klawisza OK. Oraz:

service call bluetooth 3 

nic nie robi. Włączenie usługi bluetoothd w pliku init.rc również nie działa.

service bluetoothd /system/bin/bluetoothd -n 
    class main 
    socket bluetooth stream 660 bluetooth bluetooth 
    socket dbus_bluetooth stream 660 bluetooth bluetooth 
    # init.rc does not yet support applying capabilities, so run as root and 
    # let bluetoothd drop uid to bluetooth with the right linux capabilities 
    group bluetooth net_bt_admin misc 
    enabled 

I wolałbym polecenie od ADB. (Jeśli ktokolwiek zastanawia się, czy potrzebuję go do testowania FCC.)

Odpowiedz

3

Jeśli ci się uda, aplikacja może z łatwością zmienić stan bluetooth. Kod jest bardzo prosty, jestem pewien, że jesteś z nim zapoznać:

BluetoothAdapter.getDefaultAdapter().enable() 

To może być „bez głowy” wniosek tylko z usług, które nasłuchuje określonej intencji. Można go zainstalować, a następnie nadać intencję aktywatora.

Jeśli chcesz, aby aplikacja nie pojawiała się w aplikacji "szuflada" (tylko w Ustawieniach-> Aplikacje), usuń filtry uruchamiania i główne filtry z pliku AndroidManifest.xml. Oznacza to, że usunięcie tych:

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

Od tego czasu można uruchomić aplikację/usługę z zamiarem można zdefiniować go w pliku manifestu. Na przykład, można utworzyć i zarejestrować filtr przeznaczona do serwisu z działaniem com.company.service.bluetooth.ON i uruchomić go za pomocą polecenia adb:

am startservice -a com.company.service.bluetooth.ON 

Nie wydaje się być w żaden inny sposób, aby to zrobić, gdy telefon jest nie zakorzenione. Jeśli zostanie zrootowany, powinien zadziałać service call bluetooth 3.

W tym poradniku opisano działające rozwiązanie: How to launch an Android app from adb - And toggle bluetooth. Wykorzystują tę aplikację: Bluetooth On/Off Toggle App.

+0

Tak, pomyślałem o stworzeniu dla tego aplikacji w ostateczności (aplikacja BluetoothON i aplikacja BluetoothOFF). Czy można ukryć aplikację w szufladzie aplikacji (mamy wersję 4.1.2)? A następnie użyj "adb shell am start", aby go uruchomić. –

+0

zaktualizowałeś odpowiedź, ukrywając informacje. – allprog

4

Na zakorzenione urządzenia

adb shell service call bluetooth_manager 8 

pracuje dla mnie.

+0

Niestety, wydaje się, że to wymaga zrootowanego urządzenia. – raphinesse

+0

@raphinesse Tak, wiem, dlatego pierwsza linia w mojej odpowiedzi brzmi "Na zrootowanym urządzeniu" – Danw25

Powiązane problemy