Android 使用Altbeacon在后台长时间监控信标的推荐方法

Android 使用Altbeacon在后台长时间监控信标的推荐方法,android,service,altbeacon,background-service,Android,Service,Altbeacon,Background Service,考虑到现在是2017年,而且像7(和8即将推出)这样的新安卓版本已经出现,因为老问题也提出了类似的问题,所以我很感谢你的回答 我希望在后台持续监控(只要用户登录我的应用程序)信标,即使应用程序被用户或系统(内存不足时)杀死,并且持续很长时间(即,当用户需要某种帮助时,应用程序失败的可能性应小些) 因此,这里的问题是,建议采用哪种方法: 使用此处推荐的regionBootstrap:和(在后台启动应用程序)。我试过这个,但有时我让监控工作,有时没有 使用返回START\u STICKY的后台服务。

考虑到现在是2017年,而且像7(和8即将推出)这样的新安卓版本已经出现,因为老问题也提出了类似的问题,所以我很感谢你的回答

我希望在后台持续监控(只要用户登录我的应用程序)信标,即使应用程序被用户或系统(内存不足时)杀死,并且持续很长时间(即,当用户需要某种帮助时,应用程序失败的可能性应小些)

因此,这里的问题是,建议采用哪种方法:

  • 使用此处推荐的
    regionBootstrap
    :和(在后台启动应用程序)。我试过这个,但有时我让监控工作,有时没有

  • 使用返回
    START\u STICKY
    的后台服务。我尝试过这个,但它似乎不可靠,而且它似乎阻止了其他应用程序同时监视信标

  • 使用以
    startForeground
    启动的后台服务。我没有试过这个


  • 使用示例代码的
    RegionBootstrap
    部分中所述的
    RegionBootstrap
    类是建议的在后台检测方法,即使在应用程序被终止后也是如此


    由于谷歌计划限制长时间运行的后台服务,Android“O”可能需要进行更改才能实现这一点。这些问题将在“O”之前发布的未来库版本中解决

    谢谢@davidgyoung的回答,但我有一个问题:在前台运行时,我得到了以下日志:
    D/BluetoothAdapter:STATE_ON
    D/BluetoothLeScanner:onClientRegistered()-status=0 clientIf=5
    ,但当我将应用程序更改为后台时,几秒钟后它会显示:
    V/FA:Inactivity,断开与服务的连接
    W/DynamiteModule:com.google.firebase.auth的本地模块描述符类未找到。
    之后不会发生任何事情。测距工作正常。几分钟后,它记录了一些
    D/BluetoothAdapter:STATE_ON
    事件,但仍然没有在后台进行监控。对不起,我花了很长时间才找到这个答案,问题已解决,第二天测试,它在进入该区域时什么也不做。除非我打开应用程序。通过USB连接到计算机,并在logcat中查找应用程序中的调试行,最容易解决此类问题。如果库被正确设置为扫描信标,您应该每5分钟至少看到一行来自应用程序的调试代码。