Проблема с разрешениями Flutter Bluetooth на Android 13: невозможно сканировать устройства ⇐ Android
-
Гость
Проблема с разрешениями Flutter Bluetooth на Android 13: невозможно сканировать устройства
Я разрабатываю приложение Flutter, которое использует функции Bluetooth, в частности сканирование Bluetooth, с использованием пакета flutter_blue. Я столкнулся с проблемой, связанной с разрешениями Bluetooth на Android 13.
Описание проблемы:
В моем файле AndroidManifest.xml я включил следующие разрешения:
В моем коде Flutter я использую пакет permission_handler для запроса разрешений на сканирование Bluetooth и определение местоположения. Вот мой фрагмент кода:
@override недействительный initState() { супер.initState(); запросBluetoothPermission(); } void requestBluetoothPermission () асинхронный { PermissionStatus bluetoothStatus = ждут Permission.bluetoothScan.request(); Статус PermissionStatus locationStatus = ждут Permission.location.request(); if (bluetoothStatus.isGranted && locationStatus.isGranted) { сканированиеУстройства(); } еще { }
void scanDevices() { пытаться { флаттерBlue.startScan(); flutterBlue.scanResults.listen((результаты) { setState(() { _scannedDevices = результаты; print("Результаты сканирования Bluetooth: ${results.toString()}"); }); }); } поймать(е) { print("Ошибка при сканировании Bluetooth: $e"); } } Проблема: несмотря на запрос необходимых разрешений, я все равно сталкиваюсь со следующей ошибкой:
[ОШИБКА: flutter/runtime/dart_vm_initializer.cc(41)] Необработано Исключение: PlatformException (startScan, требуется android.permission.BLUETOOTH_SCAN разрешение для AttributionSource { uid = XXXX, packageName = XXXX, attributionTag = ноль, токен = android.os.BinderProxy@XXXX, следующий = ноль}: GattService RegisterScanner, java.lang.SecurityException: требуется android.permission.BLUETOOTH_SCAN разрешение для AttributionSource { uid = XXXX, packageName = XXXX, attributionTag = null, token = android.os.BinderProxy@XXXX, next = null}: GattService RegisterScanner Дополнительная информация: Версия Flutter: 3.13.2 версия пакета flutter_blue: 0.8.0 Версия пакета Permission_handler: 11.0.0 Версия Android: 13
Я уже проверил разрешения в моем файле AndroidManifest.xml и убедился, что запрашиваю их правильно в своем коде Flutter. Что может быть причиной этой проблемы и как ее решить, чтобы успешно сканировать устройства Bluetooth на Android 13?
Спасибо за помощь!
Я разрабатываю приложение Flutter, которое использует функции Bluetooth, в частности сканирование Bluetooth, с использованием пакета flutter_blue. Я столкнулся с проблемой, связанной с разрешениями Bluetooth на Android 13.
Описание проблемы:
В моем файле AndroidManifest.xml я включил следующие разрешения:
В моем коде Flutter я использую пакет permission_handler для запроса разрешений на сканирование Bluetooth и определение местоположения. Вот мой фрагмент кода:
@override недействительный initState() { супер.initState(); запросBluetoothPermission(); } void requestBluetoothPermission () асинхронный { PermissionStatus bluetoothStatus = ждут Permission.bluetoothScan.request(); Статус PermissionStatus locationStatus = ждут Permission.location.request(); if (bluetoothStatus.isGranted && locationStatus.isGranted) { сканированиеУстройства(); } еще { }
void scanDevices() { пытаться { флаттерBlue.startScan(); flutterBlue.scanResults.listen((результаты) { setState(() { _scannedDevices = результаты; print("Результаты сканирования Bluetooth: ${results.toString()}"); }); }); } поймать(е) { print("Ошибка при сканировании Bluetooth: $e"); } } Проблема: несмотря на запрос необходимых разрешений, я все равно сталкиваюсь со следующей ошибкой:
[ОШИБКА: flutter/runtime/dart_vm_initializer.cc(41)] Необработано Исключение: PlatformException (startScan, требуется android.permission.BLUETOOTH_SCAN разрешение для AttributionSource { uid = XXXX, packageName = XXXX, attributionTag = ноль, токен = android.os.BinderProxy@XXXX, следующий = ноль}: GattService RegisterScanner, java.lang.SecurityException: требуется android.permission.BLUETOOTH_SCAN разрешение для AttributionSource { uid = XXXX, packageName = XXXX, attributionTag = null, token = android.os.BinderProxy@XXXX, next = null}: GattService RegisterScanner Дополнительная информация: Версия Flutter: 3.13.2 версия пакета flutter_blue: 0.8.0 Версия пакета Permission_handler: 11.0.0 Версия Android: 13
Я уже проверил разрешения в моем файле AndroidManifest.xml и убедился, что запрашиваю их правильно в своем коде Flutter. Что может быть причиной этой проблемы и как ее решить, чтобы успешно сканировать устройства Bluetooth на Android 13?
Спасибо за помощь!
Мобильная версия