Мое приложение для Android обменивается данными с микросхемой RN4871. Ранее я заставлял его работать с чипом, который был обновлен до версии прошивки 1.3.
У меня проблема с прошивкой версии 1.18, которую я должен поддерживать. При отправке определенных сообщений метод getValue onCharacteristicChange непрерывно возвращает массив размером 20 байт по 0 байт, примерно 10 раз в секунду.
Я отправил тот же пакет через приложение Serial Bluetooth того же телефона, и ответ работает, как и ожидалось.
Я попытался использовать getStringValue, результат - 20 нулевых (ASCII 0) символов
@Override
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
super.onCharacteristicChanged(gatt, characteristic);
readCharacteristic(characteristic);
}
private void readCharacteristic(BluetoothGattCharacteristic characteristic) {
byte[] messageBytes = characteristic.getValue();
String message = StringUtils.stringFromBytes(messageBytes);
Log.d("Status", message);
}
Ожидаемое сообщение, которое будет напечатано, должно быть строкой, но то, что было напечатано, равно 20-nullchar ( ) * +1010 *