Я использую для тестирования Oppo Reno 5 с Android 13. Приложение подключается по BLE к смарт часам, соединяется, подписывается на уведомления и отправляет команды на часы. При сборке приложения как Debug - всё работает замечательно. При сборке как Release - не приходят уведомления с часов.
То есть - вот так я подписываюсь:
try {
await this.BLEService.startNotification(this.device.id, appConfig.UUID_S, appConfig.UUID_C_1);
await this.BLEService.startNotification(this.device.id, appConfig.UUID_S, appConfig.UUID_C_3);
} catch (err: any) {
console.error(err.toString())
this.addDebugInfo(err.toString())
}
Здесь ошибок при дебаг и релиз не возникает
Так устанавливаю слушатель событий:
this.bleManagerEmitter.addListener('BleManagerDidUpdateValueForCharacteristic', ...);
При сборке в как Debug - всё работает отлично - все события приходят. При Release - событий нет.
Мой AndroidManifest:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission-sdk-23 android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
При инициализации запрашиваю разрешения на
ACCESS_FINE_LOCATION, BLUETOOTH_SCAN и BLUETOOTH_CONNECT - как в инструкции
Причем на других смартфонах - Release работает тоже отлично.
Но нужно именно на смартфонах Oppo