我想從健康檔案中讀取溫度值。 health thermometer service。根據official google ble devlopment page當我嘗試通知一個健康溫度計特性來讀取溫度我嘗試寫描述符值(客戶端特性配置)使用writeDescriptor writeDescriptor的回調方法返回狀態5根據谷歌它的GATT_INSUFFICIENT_AUTHENTICATION。 所以我評論writedescriptor的代碼,並嘗試調用方法mBluetoothGatt.setCharacteristicNotification(特徵,啓用);但onCharacteristicChanged方法從未調用過。當我與我的ios devloper團隊交談時。他們表示,他們從不寫一個描述符值,他們只是將通知設置爲true,並從同一芯片獲取溫度值。 寫一個描述符的值是必要的android開發人員得到通知? 因此,最後我試圖從bluetooth.com網站運行官方藍牙應用程序進行測試目的,他們只是禁用所有三個按鈕通知讀取和寫入? 謝謝和對不起我的英語藍牙低功耗通知
[更新]
找出一些日誌這可能會導致一些問題,粘結請幫助我,如果你有任何的解決方案。
短期密鑰生成的靜止登錄作爲誤差
十一月11日至8日:26:44.392:E/BT-SMP(1014):STK生成該鍵狀態變化可能顯着地後這導致身份驗證不足
11-08 11:26:49.437:I/BluetoothBondStateMachine(1014):bondStateChangeCallback:狀態:0地址:00:16:A4:C0:FF:EE newState:2
11-08 11: 26:49.437:D/BtGatt.btif(1014):btif_gattc_upstreams_evt:事件9
11-08 11:26:49.437 :E/BluetoothBondStateMachine(1014):在穩定狀態下,接收到的無效newState:12
[UPDATE]
在Nexus 7升級奇巧4.4後。添加兩種方法
device.createBond();
device.setPairingConfirmation(true);
適合我現在我可以讀取加密特徵。但仍然不穩定。但我得到了一些成功。
謝謝對於響應,但爲什麼超過ios開發人員得到的溫度值沒有設置描述符值只是設置通知真正??因此,我們必須創建兩個不同的固件的溫度計硬件一個爲ios和其他的android? ??? – mcd
@mcd您不需要創建兩個不同的固件。同樣的溫度計可以在Android和iOS上運行,但在Android應用程序中,您必須額外撥打一個描述符才能使其工作。我的猜測實際上是iOS也編寫描述符,但是iOS在將通知設置爲true時自動執行。 – reTs
謝謝。我已經嘗試寫描述符,但它給我的回調方法的onWriteDiscriptor調用的狀態代碼爲5,我嘗試使用readCharacteristic(特性)讀取特徵;方法返回false – mcd