1. 程式人生 > >Android 藍芽BLE 中onCharacteristicChanged不走回調的解決方案

Android 藍芽BLE 中onCharacteristicChanged不走回調的解決方案

做個小筆記,具體有關Android 藍芽Ble的問題請看下面兩篇文章,寫的很實用

最近在做一個智慧硬體的專案,遇到一個問題浪費了我三天時間,所以決定把它記錄下來。我訪問各大論壇沒有一個明確的答案,所以我只能錯誤和嘗試,終於是把這個問題解決了。

具體解決步驟:

檢測setCharacteristicNotification(BluetoothGattCharacteristic characteristic,boolean enabled)方法是否書寫正確

public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic,
                                              boolean
enabled) { if (mBluetoothAdapter == null || mBluetoothGatt == null) { Logger.e("BluetoothAdapter not initialized"); return; } boolean notification = mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); Logger.e("ble notification ="
+notification); //這裡可以加入判斷對指定的UUID值進行訂閱 BluetoothGattDescriptor descriptor = characteristic.getDescriptor(BluetoothUUID.CLIENT_CHARACTERISTIC_CONFIG); descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); mBluetoothGatt.writeDescriptor(descriptor); Logger.e("ble 訂閱"
); }

通過反編譯和用其他的軟體進行除錯我發現了CLIENT_CHARACTERISTIC_CONFIG是個固定值“00002902-0000-1000-8000-00805f9b34fb”

      臨時做個筆記,等忙完這段時間再好好總結一下遇到的其他問題,希望這點文字能幫助一部分人。