flutter_blue_plus在后台/设备锁定时无法扫描

gxwragnw  于 2023-05-19  发布在  Flutter
关注(0)|答案(1)|浏览(395)

当应用程序处于后台时,无法扫描设备。Android中的行为-当应用程序处于最小化状态时扫描工作,但当应用程序处于killed状态/手机锁定时扫描工作不正常。iOS中的行为-当应用程序处于最小化状态时扫描不工作,当应用程序处于已终止状态/手机锁定时也不工作。预期行为-扫描应在应用生命周期的所有状态下工作。使用的插件-flutter_blue_plusWorkmanager
尝试给予所有后台权限并使用workmanager,但扫描仅在应用程序处于前台或Android中处于最小化状态时起作用,在iOS中仅在前台状态时起作用。预期行为-扫描应在应用生命周期的所有状态下工作。

nukf8bse

nukf8bse1#

“尝试给予所有后台权限。”在iOS中,是否包括bluetooth-central模式(这是您唯一需要的模式)?请注意,iOS不会在后台“重新发现”设备,即使您请求重复。每次扫描只会发现一次,并且您必须扫描特定的服务UUID集(而不是“所有服务”或nil)。
请注意,如果应用程序被iOS上的用户杀死,您不应该期望扫描继续(尽管我遇到过这样的情况,所以不要假设这里有任何承诺)。在这种情况下,用户已明确禁用您的应用。如果用户允许,可以通过静默推送通知重新唤醒已关闭的应用程序。如果应用程序被系统终止(以恢复系统资源),您通常应该预期扫描将代表应用程序继续进行,并且如果发现新设备,应用程序将重新启动。
对于Android,请参阅https://stackoverflow.com/a/44291991/97337并确保您启用了ACCESS_COARSE_LOCATION

相关问题