Из документации :
var characteristics = service.characteristics;
for(BluetoothCharacteristic c in characteristics) {
List<int> value = await device.readCharacteristic(c);
print(value);
}
// Writes to a characteristic
await device.writeCharacteristic(c, [0x12, 0x34])
Мы можем видеть, что библиотека работает с типами List (int) и что она отправляет / получает "32-битные" значения.
Скорее всего, передаются пары байтов, поэтому 16-битные значения представлены в виде чисел в списке;это символов .Это означает, что вы можете отправлять символы с их представлением utf8.
В приведенном выше примере характеристика записывает 0x12, а затем 0x34.В ссылке на таблицу символов ascii это переводится как «(Device Control 2) (4)».
Ваша задача - декодировать их в символы (UTF8), а также кодировать их при отправке.вернуться к часам.Это требуется программным обеспечением часов, которое может реагировать на определенные записи характеристик в зависимости от полученного значения.
Возможно, вам придется немного покопаться в документации / спецификации Bluetooth используемых вами часов.
Проверьте класс dart UTF8Decoder: convert lib.Это должно помочь вам перевести его в читабельный текст.Если нет, вам придется немного покопаться.
String decoded = UTF8Decoder().convert(value) // value == List<int>, Uint8List, etc.
print(decoded)