Я работаю над частью проекта внутренней локализации. Мне нужно, чтобы мое приложение Flutter сканировало и получало адреса Mac и значения RSSI устройств Wi-Fi и Bluetooth. Я использую flutter_blue для сканирования Bluetooth и wifi_scan для сканирования Wi-Fi. Приложение работает хорошо, когда оно находится на переднем плане, но при сканировании происходит сбой, когда приложение находится в фоновом режиме.
Что я пробовал до сих пор:
ScanMode.lowLatency
на ScanMode.lowPower
и ScanMode.opportunistic
для метода startScan()
для flutter_blue.Есть ли способ добиться этого? Пакета с опцией backgroundMode: true нет? Я не знаю туземцев. Котлин тоже не знаю.
Согласно документации для разработчиков Android , ScanMode.lowPower — это единственно возможный режим фонового сканирования. Вам также необходимо запросить доступ к местоположению для фона (документация здесь и здесь).
Подумайте о переходе на Flutter Blue Plus вместо Flutter Blue; Flutter Blue Plus — это поддерживаемая в настоящее время версия. Этот запрос на включение на GitHub показывает, что Flutter Blue не может работать в фоновом режиме. Запрос на вытягивание никогда не объединялся.
После того, как было перепробовано много вещей, я просто попытался определить местоположение GPS.
Использовал этот пакет: местоположение
И выполнить location.enableBackgroundMode(enable: true) как написано в ридми, тогда у меня тоже начинает работать сканирование wifi и bluetooth в фоновом режиме.
Это Ридикулюс
Привет, я несколько дней пытаюсь заставить это работать. Я использую на Android 11 и 13: flutter_blue_plus: ^1.3.1 flutter_foreground_task: ^3.10.0 У меня есть все разрешения в файле манифеста, и он работает при включенном экране. У вас есть рабочий пример, я был бы очень признателен. Я тоже не могу заставить location работать в задаче переднего плана.
Я пробовал это раньше, но, возможно, было что-то, что я пропустил. Так что попробую еще раз, спасибо