1

мое приложение отлично работает в Samsung S6 и Nexus 5 и Nexus 7 с Android 5, однако, он не может работать в Nexus 5x с Android 6.Bluetooth низкой энергии writeCharacteristic вернуть ложна в Nexus 5x с Android зефира


boolean success = mBluetoothGatt.writeCharacteristic (характеристика);


Моего приложение будет посылать эту команду много раз, чтобы установить или получить данные из аппаратных средств, однако, он может вернуться ложным после одного или два команды, посланной. (Первая команда возвращает истину)

ли Android Marshmallow меняет что-то в BLE?

ответ

3

Общей причиной этого является попытка выполнить более одной записи или чтения в строке. Вы должны дождаться результата предыдущего чтения или записи перед тем, как сделать следующий. Для нетривиальных приложений это обычно означает настройку очереди заданий.

Если это не так, то если вы присоедините источник Android в своей среде IDE, вы можете пройти через BluetoothGatt.writeCharacteristic() в отладчике и посмотреть, где именно он возвращает false. Источник, на который я смотрю, имеет 6 мест, где он возвращает false, в основном «ранние ауты», поэтому он может быть любым из них.

+0

Опытный это при чтении и записи в то же время, когда вы просто экспериментируете с bluetooth le –