2011-02-15 38 views
3

我想確定配對設備當前是否處於活動狀態。我並不需要連接它,只需確定它是否有心跳。Android藍牙 - 確定配對設備是否「打開」

我試圖連接藍牙套接字時遇到了一系列的IO錯誤,但我不確定是否真的需要。

+0

你解決這個問題?當我嘗試驗證我知道的BT設備是否真的準備好談論時,我也遇到了IOException。 我的方法是嘗試連接到一個套接字,但它不會影響我得到的錯誤消息:「服務發現失敗」 – SEngstrom 2012-06-27 22:28:01

回答

2

假設您正在使用Android 如果您具有此設備的BluetoothDevice對象,則可以註冊以偵聽廣播操作 - ACL_CONNECTED或ACL_DISCONNECTED並跟蹤連接狀態。

0

如果你想找出羯羊一個BT-耳機目前正在積極連接(音頻路由到它),請執行下列操作:

聲明如下意圖過濾

 <intent-filter > 
      <action android:name="android.bluetooth.headset.action.AUDIO_STATE_CHANGED" /> 
     </intent-filter> 

,並在您的接收器在onReceive檢查:

if ("android.bluetooth.headset.action.AUDIO_STATE_CHANGED".equals(intent.getAction())) { 
    headsetAudioState = intent.getIntExtra("android.bluetooth.headset.extra.AUDIO_STATE", -2); 
} 

並將int保存爲靜態變量。只要您想知道BT音頻是否連接(1)/斷開連接(0),就可以隨時訪問它。不漂亮,但完成工作。

還檢查了: https://github.com/android/platform_frameworks_base/blob/gingerbread/core/java/android/bluetooth/BluetoothHeadset.java