我正在进行室内定位项目的一部分。我需要Flutter应用程序扫描并获取Wifi和蓝牙设备的Mac地址和RSSI值。我使用flutter_blue进行蓝牙扫描,使用wifi_scan进行Wifi扫描。应用程序在前台运行良好,但在后台运行时扫描失败。
到目前为止,我已经尝试过:
- 已尝试将蓝牙扫描模式从
ScanMode.lowLatency
更改为ScanMode.lowPower
与ScanMode.opportunistic
,以使用flutter_blue得startScan()
方法. - flutter_background .我设法在后台做了一些任务,但是WiFi和蓝牙不起作用。
- 同样的情况
- 同样的情况
- 同样的情况
- workmanager没有尝试它,因为它说它可以每15分钟触发一次BG操作,但我每6秒扫描一次。
“有没有办法做到这一点?有没有选项为backgroundMode: true
的软件包?我不认识土著,也不认识Kotlin。”
2条答案
按热度按时间xdnvmnnf1#
根据Android Developer文档,
ScanMode.lowPower
是后台扫描的唯一可能模式。您还需要请求后台的位置访问(文档here和here)。考虑改用Flutter Blue Plus而不是Flutter Blue; Flutter Blue Plus是当前维护的版本。GitHub上的This pull request显示Flutter Blue无法在后台运行。拉取请求从未被合并。
ej83mcc02#
在尝试了很多东西之后,我只是试着也获得GPS定位。
使用此套件:location
并按照自述文件中的说明执行
location.enableBackgroundMode(enable: true)
,然后我的WiFi和蓝牙扫描也开始在后台工作。这是可笑的