1

我的應用程序是三星S6和Nexus 5和Nexus 7與Android 5個工作正常,但是,它不能在Nexus 5X保護與Android 6.藍牙低功耗writeCharacteristic中的Nexus 5X返回false與Android棉花糖

工作

boolean success = mBluetoothGatt.writeCharacteristic(characteristic);


我的應用程序將發送這個命令多次設置或從硬件中獲取數據,但是,它可能後發送一個或兩個命令返回false。(第一個命令將返回true)

不Android Marshmallow在BLE中改變了一些東西?

回答

3

這樣做的一個常見原因是如果您嘗試在一行中執行多個寫操作或讀操作。在進行下一個讀取或寫入之前,您必須等待前一個讀取或寫入的結果。對於非平凡的應用程序,這通常意味着設置一個作業隊列。

如果這不是原因,那麼如果您在您的IDE中附加了Android源代碼,則可能能夠在調試器中遍歷BluetoothGatt.writeCharacteristic(),並確切地看到它返回false的位置。我看到的源代碼有6個地方返回false,主要是「提前」,所以它可能是其中的任何一個。

+0

在閱讀和寫作的同時,僅僅嘗試使用藍牙技術 –