У меня есть клиентское приложение на Android 10, созданное с помощью React Native
Android SDK:
API Levels: 23, 28
Build Tools: 28.0.3
react: ^16.9.0 => 16.9.0
react-native: ^0.62.2 => 0.62.2
Что работает: обнаружение службы, подключающее чтение / запись / уведомление о пользовательских (128-битных) характеристиках
Что не работает: чтение характеристики службы общего доступа 0x1800
Обнаружение службы: BleManager.retrieveServices / snip / характеристики: [{характеристика: 2a00, свойства: [Объект], служба: 1800}, это полная характеристика имени устройства.
Я могу прочитать его с помощью любого клиентского приложения BLE, например LightBlue, значит серверная часть работает.
Я пробовал читать короткий 16-битный UUID:
BleManager.read(peripheral.id,
'1800',
'2a00').then((readData) => {
console.log(readData);
}).catch((error) => {
console.log(error);
});
а также полная версия 128b:
BleManager.read(peripheral.id,
'00001800-0000-1000-8000-00805f9b34fb',
'00002a00-0000-1000-8000-00805f9b34fb').then((readData) => {
console.log(readData);
}).catch((error) => {
console.log(error);
});
В обоих случаях ошибка перехвата 00002a00-0000-1000-8000-00805f9b34fb не найдена.
Обратите внимание, что тот же код отлично работает для моих собственных пользовательских UUID. периферийный.id - это MAC-адрес периферийного устройства моего сервера.
Есть идеи, что может быть не так? Спасибо!