我可以枚舉配對的Bluetooth
設備,我需要檢查應用程序啓動時的當前連接狀態。如何以編程方式檢查Android中藍牙設備的連接狀態?
但是,我發現沒有辦法獲得連接狀態?!
這裏有一些努力,我嘗試過但失敗了:
- android.bluetooth.BluetoothDevice
它獲得遠程設備的結合狀態的方法,以及可能的值。鍵態爲:BOND_NONE
,BOND_BONDING
,BOND_BONDED
。但這不是連接狀態。
- android.bluetooth.BluetoothProfile
- android.bluetooth.BluetoothManager
- android.bluetooth.BluetoothAdapter
的方法可以用於獲得連接狀態,但必須首先獲得BluetoothProfile
對象。
public abstract int getConnectionState (BluetoothDevice device);
如描述文檔:「客戶來電垂詢getProfileProxy(上下文,BluetoothProfile.ServiceListener,INT),獲取配置文件代理」,它只能在調用時的狀態變化ServiceListener
進行檢索。
如果我在啓動時查詢狀態而沒有發生任何狀態更改,該怎麼辦?
它提供了一種方法,包括:
public int getConnectionState (BluetoothDevice device, int profile);
但是它不能被用於檢測Bluetooth
揚聲器的連接狀態,因爲配置參數只接受GATT
或(對於低能量設備),不支持其他配置文件(HEADSET
,HEALTH
,A2DP
)。
它提供了一種方法,包括:
public int getProfileConnectionState (int profile);
此功能可用於檢查本地Bluetooth
適配器是否被連接到任何特定配置文件的遠程設備。它可以用來檢查指定的配置文件。但它不能用於檢查給定的設備。
有誰知道如何獲得給定Bluetooth
設備的連接狀態?
在此先感謝。
您是否找到任何答案? – 2015-09-02 09:54:34
在這兩天的幫助可以不勝感激。找到任何解決方案。我想檢查藍牙gatt連接狀態,如果連接,則需要等待,直到它移動到斷開狀態,但我使用getConnectionState()它會引發異常。 – prasanthMurugan 2017-10-23 13:41:44