Впервые в Kotlin и Android.
У меня есть setValue, который я использую для характеристики, которая внезапно выходит из строя.
Не могу понять, как вытащить из него объект ошибки. Возможно ли, что в мире Android мы не получаем причину ошибки при сбое записи характеристики?
Кто-нибудь знает, как вытащить причину ошибки из этой ситуации?
private fun writeMyCharacteristic(characteristic: BluetoothGattCharacteristic) {
val payload = BluetoothUtils.packagePayload()
mClientActionListener.log(TAG_GATT_CLIENT_CALLBACK, "** Made it to writeCharacteristic")
if (!mConnected) {
mClientActionListener.log(TAG_GATT_CLIENT_CALLBACK, "** Failed to connect")
return
}
mClientActionListener.log(TAG_GATT_CLIENT_CALLBACK, "** Writing the payload: ${payload.contentToString()}")
characteristic.setValue(payload)
val success = mGatt!!.writeCharacteristic(characteristic)
if (success) {
mClientActionListener.log(TAG_GATT_CLIENT_CALLBACK,"** Wrote: " + payload.contentToString())
} else {
/// Here is where I want to know WHY it was not a success.
mClientActionListener.logError(TAG_GATT_CLIENT_CALLBACK,"** Failed to write to the characteristic.")
}
}
Огромное спасибо.
@ Анрике Мендес. Что именно вы имели в виду. Я и другой разработчик просмотрели код и не обнаружили логической ошибки.
Я не понимаю, почему он вызывает функцию, чтобы узнать, истинна она или ложь внутри себя. Переменная mGatt !! ...
А! Это было неправильное соглашение об именах. Я назвал свою функцию так же, как нативную функцию. С тех пор это изменилось. Извините за путаницу.
Но вы смотрели логарифм? Там вы увидите ошибку. Измените фильтр на «Ошибка» (logcat).
Откуда у вас характеристики Bluetooth? Это от клиента Bluetooth или от нового экземпляра?
@HenriqueMendes Нет, это не отображается в LogCat. Он просто говорит, что не удалось подключиться. Мне нужно знать, почему это не удалось, и функция setValue знает внутренне, но не возвращает ее обратно вызывающей функции.
@xiaomi BluetoothGattCharacteristic является периферийное устройство BLE.
Как подключить Гатт? Используете ли вы обнаружение сервисов для получения списка сервисов / характеристик, включенных в gatt?
@xiaomi - нет. В этом случае мне просто нужно записать одно значение на периферийное устройство BLE.
Посмотри на свою логику