Проблема с подпиской на уведомления BLE в Release-сборке на Oppo Reno 5
Для тестирования используется устройство Oppo Reno 5 под управлением Android 13. Приложение подключается к смарт-часам по BLE: устанавливает соединение, подписывается на уведомления и отправляет команды. При сборке приложения в режиме Debug всё работает корректно, однако в режиме Release уведомления с часов не приходят.
Код подписки на уведомления
Подписка выполняется следующим образом:
- Вызов
this.BLEService.startNotificationдля двух характеристик (UUID_C_1 и UUID_C_3) с использованием соответствующих UUID сервиса. - В обоих режимах (Debug и Release) ошибки при подписке не возникают.
Обработка событий
Устанавливается слушатель событий:
this.bleManagerEmitter.addListener('BleManagerDidUpdateValueForCharacteristic', ...)В Debug-режиме все события приходят корректно. В Release-режиме события отсутствуют.
Конфигурация AndroidManifest
В файле манифеста прописаны все необходимые разрешения:
BLUETOOTHBLUETOOTH_ADMINACCESS_FINE_LOCATION(для SDK 23+)ACCESS_COARSE_LOCATIONBLUETOOTH_CONNECTBLUETOOTH_SCANACCESS_BACKGROUND_LOCATION(для SDK 23+)BLUETOOTH_ADVERTISE- Также указана аппаратная функция
bluetooth_leкак обязательная.
Запрос разрешений
При инициализации приложения запрашиваются разрешения на ACCESS_FINE_LOCATION, BLUETOOTH_SCAN и BLUETOOTH_CONNECT в соответствии с официальной документацией.
Дополнительные наблюдения
На других смартфонах, отличных от Oppo, Release-сборка работает корректно. Проблема воспроизводится только на устройствах Oppo.