通过Android AltBeacon库显式控制扫描的开始和停止

时间:2016-09-06 14:34:29

标签: android ibeacon altbeacon android-ibeacon

我一直在使用Android AltBeacon库来监控附近附近的iBeacons。此应用程序的一个特定要求是,即使应用程序处于后台,也可以扫描信标检测,并在应用程序关闭时完全停止。

我理解的这个要求可以通过BootstrapNotifier / RegionBootstrap部分满足,但即使应用程序关闭我也不会重新启动扫描服务,我不想这样做。

我的解决方法是在单独的服务中实现所有扫描逻辑,可以根据需要停止和启动。话虽如此,AltBeacon库的核心本身就是一项服务,所以基本上我在服务中运行的服务并没有多大意义。

有没有更好的方法呢?任何想法都将不胜感激。

1 个答案:

答案 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" />
    ...

但请记住,操作系统会阻止您的应用程序在内存不足的情况下在后台运行,即使用户没有明确关闭它。因此,您可能会发现,如果您禁用此功能,只要您愿意,您的应用就不会在后台继续扫描信标。