2011-11-04 5 views
7

Chcę uruchomić usługę, gdy określone urządzenie bluetooth jest podłączone i zatrzymuję tę usługę po jej rozłączeniu. Oczywiście nie chcę mieć usługi w tle, która zawsze sprawdza, czy urządzenie BT jest podłączone, więc chcę to osiągnąć za pomocą Odbiornika.Rozgłaszanie, jeśli urządzenie bluetooth łączy się/rozłącza?

Czy to rzeczywiście możliwe? android.bluetooth.device.action.ACL_CONNECTED jest wymienione here, ale podobno nie działało.

Dzięki!

Odpowiedz

17
<intent-filter> 
    <action android:name="android.bluetooth.device.action.ACL_CONNECTED" /> 
    <action android:name="android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED" /> 
    <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" /> 
</intent-filter> 

Są to filtry, które należy dodać do odbiornika.

ACL_CONNECTED sygnały gdy Bluetooth jest podłączony i ACL_DISCONNECTED sygnały Bluetooth odłączania

Dla konkretnego urządzenia trzeba sprawdzić intencje/Context odbiornik transmisji

Dwa pozwolenie trzeba dodać to:

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<uses-permission android:name="android.permission.BLUETOOTH" /> 

Myślę, że powinno to rozwiązać twój problem.

+0

To działało, dziękuję! Myślałem, że ACL_CONNECTED będzie tylko dla urządzeń audio ^^ – Force

+0

Twoje powitanie mój przyjaciel –

+0

Na wypadek, gdyby ktoś używał tego kodu, ACL_DISCONNECT_REQUESTED i ACL_DISCONNECTED nie są wywoływane, jeśli użytkownik wyłączy Bluetooth! – Force