[英]Android Bluetooth Low Energy Motorola API pairing
我正在使用Motorola隨RAZR提供的BT 4.0 API。 在他們的一份文件中,它聲明在連接和使用他們的框架之前,先使用Android API進行配對。 按照他們的指示,我一直在與OS藍牙設置應用程序配對,但是它從未提示我輸入密鑰。 它會配對,但似乎沒有結合,這對我來說至關重要。
我的問題是,當他們說“使用Android API”時,是指僅使用OS藍牙實用程序事先進行配對(就像我一直在做的那樣),或者有某種方法可以在我的應用程序中使用代碼。 他們引用了“ createBond()”函數,據我所知,該函數不是可訪問的函數(至少並非沒有一些松散的庫或反射)。
我們將不勝感激任何建議,尤其是那些成功使用了API的人,只要他們能夠說明其過程。 我現在只是想澄清一下:)
勞埃德,
您是正確的,請按照發布的鏈接中的說明進行操作。
在編碼之外,當他們說使用標准的android API進行“非le”操作時,他們的意思是繼續進行ble設備配對,就像在android設置中的任何藍牙經典設備一樣->無線和網絡->藍牙- >掃描設備。
如果您使用的設備是摩托羅拉兼容設備,則該設備將配對但未連接。
現在,在代碼中,您可以通過以下相同方法來檢測此配對設備:
BluetoothAdapter.getDefaultAdapter().getBondedDevices()
要再次檢查您的Android Phone是否兼容LE,請運行以下代碼:
public static boolean checkBLESupport() {
boolean deviceSupportsLE;
try {
@SuppressWarnings({ "unused", "rawtypes" })
Class object = Class.forName("android.server.BluetoothGattService");
deviceSupportsLE = true;
} catch (Exception e) {
deviceSupportsLE = false;
}
return deviceSupportsLE;
}
並再次檢查在配對設備之間循環時,您配對的藍牙設備是否為LE。 使用此代碼檢查設備。
if (device.getBluetoothClass() == null) {
Log.i(TAG, "This device is BLE compatible");
b = true;
} else {
Log.i(TAG, "This device is not BLE");
b = false;
}
現在,要建立從LE兼容電話到LE兼容藍牙設備的連接,請遵循發布的鏈接下的Gatt服務說明。 http://developer.motorola.com/docs/bluetooth-low-energy-api/
請注意,在此示例下,它正在連接藍牙低能耗心率監測器。
如果您不嘗試使用LE心率配置文件連接到心率監測器,則這里是另一個Motorola文檔的鏈接,該文檔詳細介紹了如何創建自己的LE Profile以與GATT框架一起使用。 http://developer.motorola.com/docs/bluetooth-low-energy-gatt-framework-api/
如果以上兩個文檔中的任何一點都不夠清晰,則說明Motorola使用這些文檔中的框架提供了示例android應用程序。
我猜摩托羅拉堆棧具有BLE支持。 但是我的感覺是,盡管它確實可以在某些傳感器上工作,但它並不與需要綁定的設備配對。 我嘗試了需要粘合的接近傳感器。 盡管設備是通過Razr發現的,但是甚至沒有使用S3,但它從未配對。
有一個有用的視頻在這里 。
比賽遲到了,但可以確認-
如果您的BLE外圍設備需要綁定,則必須先通過藍牙設置將Moto X和其他一些較舊的摩托羅拉設備配對,然后再通過Android GATT接口進行編程連接。
如果您通過createBond方法進行綁定,或者讀取了加密的特征,則盡管可能會建立表明綁定良好的DDMS日志,但通常會在60秒內斷開連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.