2013-08-28 8 views
5

Ist es möglich, Bluetooth von ADB ohne Benutzereingriff zu starten? Ich habe versucht:Starten Sie Bluetooth von ADB oder beim Booten?

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

aber dies muss der Benutzer ok drücken. Und:

service call bluetooth 3 

tut nichts. Das Aktivieren des Bluetoothd-Diensts in init.rc funktioniert auch nicht.

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 

Und ich würde einen Befehl von ADB bevorzugen. (Wenn jemand fragt, ich brauche es für FCC-Tests.)

Antwort

3

Wenn es für Sie funktioniert, kann eine App den Bluetooth-Zustand leicht ändern. Der Code ist sehr einfach, ich bin sicher, dass Sie mit ihm vertraut sind:

BluetoothAdapter.getDefaultAdapter().enable() 

Dies ist eine „kopflos“ Anwendung mit einem Service könnte nur die für eine bestimmte Absicht zuhört. Sie könnten es installieren und dann die Aktivator-Absicht übertragen.

Wenn Sie möchten, dass die Anwendung nicht in der App "Schublade" angezeigt wird (nur in den Einstellungen-> Apps), entfernen Sie den Starter- und Hauptabsichtsfilter aus der Datei AndroidManifest.xml. Das heißt, löscht diese:

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

Von dieser Zeit an Sie den app/Service mit der Absicht, beginnen Sie es in der Manifest-Datei definieren.

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

Es scheint nicht auf andere Weise zu sein, es zu tun, wenn sich das Telefon: Zum Beispiel können Sie eine Intent-Filter für den Dienst mit der Aktion com.company.service.bluetooth.ON und starten Sie es mit dem adb Befehl erstellen und registrieren nicht verwurzelt. Wenn es verwurzelt ist, sollte die funktionieren.

In diesem Tutorial wird eine funktionierende Lösung beschrieben: How to launch an Android app from adb - And toggle bluetooth. Sie nutzen diese App: Bluetooth On/Off Toggle App.

+0

Ja, ich habe darüber nachgedacht, eine App als letzten Ausweg zu machen (Eine BluetoothON App und eine BluetoothOFF App). Ist es möglich, eine App aus der App-Schublade auszublenden (Wir sind auf 4.1.2)? Und dann benutze "adb shell am start" um es zu starten. –

+0

aktualisiert die Antwort mit der versteckten Info – allprog

4

Auf einem verwurzelten Gerät

adb shell service call bluetooth_manager 8 

Arbeiten für mich.

+0

Leider scheint dies tatsächlich ein gerootete Gerät – raphinesse

+0

@raphinesse ja ich weiß, das ist, warum die erste Zeile in meiner Antwort ist "Auf einem gerooteten Gerät" – Danw25

Verwandte Themen