2011-11-04 251 views
7

我想要啓動一項服務,當一個特定的藍牙設備連接並斷開連接時停止此服務。 顯然,我不想有一個後臺服務,總是檢查一個BT設備是否連接,所以我想用Receiver來實現。藍牙設備連接/斷開連接時廣播嗎?

這實際上可行嗎? android.bluetooth.device.action.ACL_CONNECTED被提及here,但顯然它沒有工作。

謝謝!

回答

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> 

這些是您必須添加與您的廣播接收器的過濾器。當藍牙連接

ACL_CONNECTED信號和ACL_DISCONNECTED信號藍牙斷開

對於你必須檢查意圖/上下文在廣播接收機

必須添加兩個權限是特定的設備:

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

我認爲這應該可以解決您的問題。

+0

工作,謝謝!我認爲ACL_CONNECTED只適用於音頻設備^^ – Force

+0

歡迎我的朋友 –

+0

爲防萬一有人使用此代碼,如果用戶關閉藍牙,ACL_DISCONNECT_REQUESTED和ACL_DISCONNECTED不會被調用! – Force