[英]How to programmatically check connection state of a Bluetooth device in Android?
我可以枚舉配對的Bluetooth
設備,我需要在應用啟動時檢查它們當前的連接狀態。
但是,我發現無法獲得連接狀態?!
以下是我嘗試但失敗的一些努力:
它具有獲取遠程設備的綁定狀態的方法,並且綁定狀態的可能值為: BOND_NONE
, BOND_BONDING
, BOND_BONDED
。 但這不是連接狀態。
該方法可用於獲取連接狀態,但必須首先獲取BluetoothProfile
對象。
public abstract int getConnectionState (BluetoothDevice device);
正如doc中所描述的:“ 客戶端應調用getProfileProxy(Context,BluetoothProfile.ServiceListener,int),以獲取配置文件代理。 ”,它只能在狀態更改時調用的ServiceListener
檢索。
如果我在啟動時查詢狀態而沒有發生任何狀態更改,該怎么辦?
它提供了一種方法:
public int getConnectionState (BluetoothDevice device, int profile);
但它不能用於檢測Bluetooth
揚聲器的連接狀態,因為配置文件參數只接受GATT
或GATT_SERVER
(對於低能耗設備),不支持其他配置文件( HEADSET
, HEALTH
, A2DP
)。
它提供了一種方法:
public int getProfileConnectionState (int profile);
此功能可用於檢查本地Bluetooth
適配器是否已連接到特定配置文件的任何遠程設備。 它可用於檢查指定的配置文件。 但它不能用於檢查給定的設備。
有誰知道如何獲得給定Bluetooth
設備的連接狀態?
提前致謝。
請參閱類似問題的答案中的注釋如何以編程方式判斷藍牙設備是否已連接? (Android 2.2) :
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.