我一直在使用Android AltBeacon库来监控附近附近的iBeacons。此应用程序的一个特定要求是,即使应用程序处于后台,也可以扫描信标检测,并在应用程序关闭时完全停止。
我理解的这个要求可以通过BootstrapNotifier / RegionBootstrap部分满足,但即使应用程序关闭我也不会重新启动扫描服务,我不想这样做。
我的解决方法是在单独的服务中实现所有扫描逻辑,可以根据需要停止和启动。话虽如此,AltBeacon库的核心本身就是一项服务,所以基本上我在服务中运行的服务并没有多大意义。
有没有更好的方法呢?任何想法都将不胜感激。
答案 0 :(得分:1)
如果您不想让磁带库自动重新启动扫描,您可以通过编辑ApplicationManifest.xml来禁用其StartupBroadcastReceiver:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" ... >
<application ... >
<receiver android:name="org.altbeacon.beacon.startup.StartupBroadcastReceiver"
tools:node="remove" />
...
但请记住,操作系统会阻止您的应用程序在内存不足的情况下在后台运行,即使用户没有明确关闭它。因此,您可能会发现,如果您禁用此功能,只要您愿意,您的应用就不会在后台继续扫描信标。