Android 藍芽BLE 中onCharacteristicChanged不走回調的解決方案
阿新 • • 發佈:2019-02-02
做個小筆記,具體有關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”“
臨時做個筆記,等忙完這段時間再好好總結一下遇到的其他問題,希望這點文字能幫助一部分人。