从"2.18“版本开始,我就一直在使用这个库。
我必须让信标扫描在背景中工作,我使用前台服务来实现这一点。但电池问题很严重。虽然设定了扫描周期,但经常漏掉信标。因此,我清楚地使用了"startRangingBeaconsInRegion“和"stopRangingBeaconsInRegion”的函数来打开它。
直到现在,我才开始迁移到最新的版本,而那个最新的版本现在让我很困难。这是因为在开始和停止时使用了“自动绑定”函数。它杀死并创建前台服务。在使用"startRangingBeacons(region)“函数之后,每当使用"stopRangingBeacons(region)”函数时,警报就会持续响。
有办法只打开/关闭扫描吗?还是有办法关闭自动绑定?
请告诉我。
参考资料:https://altbeacon.github.io/android-beacon-library/autobind.html
发布于 2021-10-26 15:50:25
AndroidBeaconLibrary允许在后台进行BLE信标扫描,包括多种技术,包括可选地使用Android“前台服务”以允许在后台进行扩展的无限期扫描。该库提供内置的前台服务,使这一工作更容易进行。配置后,前台服务的工作方式如下:
OP询问应用程序希望反复启动和停止测距信标的情况,但不希望前台服务通知在上或从上闪烁。2.19之前的库版本使手工服务绑定成为可能,但在2.19+中不推荐手动服务绑定,因为它是错误、崩溃和开发人员沮丧的常见来源。
为了在库版本上实现与自动绑定相同的效果,您有几个选项
beaconManager.setIntentScanningStrategyEnabled(true),它将使用基于背景意图的扫描,而不是前台服务。请使用此选项查看这里,库永远不会显示前台服务通知(如果需要,您可以构建自己的前台服务)。然而,你可能会发现,这会烧掉太多的电池,因为它会持续扫描。stopRangingBeacons(region)。相反,将扫描周期之间的更改为非常大的内容:beaconManager.setBackgroundBetweenScanPeriod(360000000L) /* 10 hours*/后面跟着beaconManager.updateScanPeriods()。然后,当您想要继续扫描时,将其设置为正常值。https://stackoverflow.com/questions/69640068
复制相似问题