首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[2.19]+如何关闭startRangingBeacons(region)和stopRangingBeacons(region)中的自动绑定

[2.19]+如何关闭startRangingBeacons(region)和stopRangingBeacons(region)中的自动绑定
EN

Stack Overflow用户
提问于 2021-10-20 03:44:10
回答 1查看 288关注 0票数 1

从"2.18“版本开始,我就一直在使用这个库。

我必须让信标扫描在背景中工作,我使用前台服务来实现这一点。但电池问题很严重。虽然设定了扫描周期,但经常漏掉信标。因此,我清楚地使用了"startRangingBeaconsInRegion“和"stopRangingBeaconsInRegion”的函数来打开它。

直到现在,我才开始迁移到最新的版本,而那个最新的版本现在让我很困难。这是因为在开始和停止时使用了“自动绑定”函数。它杀死并创建前台服务。在使用"startRangingBeacons(region)“函数之后,每当使用"stopRangingBeacons(region)”函数时,警报就会持续响。

有办法只打开/关闭扫描吗?还是有办法关闭自动绑定?

请告诉我。

参考资料:https://altbeacon.github.io/android-beacon-library/autobind.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 15:50:25

AndroidBeaconLibrary允许在后台进行BLE信标扫描,包括多种技术,包括可选地使用Android“前台服务”以允许在后台进行扩展的无限期扫描。该库提供内置的前台服务,使这一工作更容易进行。配置后,前台服务的工作方式如下:

  1. 每当您开始对至少一个区域进行测距或监视时,前台服务将启动,并且将在电话上显示一个通知,指示正在运行的扫描服务。
  2. 每当您停止对所有区域进行测距和监视时,前台服务将停止,通知将消失。

OP询问应用程序希望反复启动和停止测距信标的情况,但不希望前台服务通知在上或从上闪烁。2.19之前的库版本使手工服务绑定成为可能,但在2.19+中不推荐手动服务绑定,因为它是错误、崩溃和开发人员沮丧的常见来源。

为了在库版本上实现与自动绑定相同的效果,您有几个选项

  1. 设置beaconManager.setIntentScanningStrategyEnabled(true),它将使用基于背景意图的扫描,而不是前台服务。请使用此选项查看这里,库永远不会显示前台服务通知(如果需要,您可以构建自己的前台服务)。然而,你可能会发现,这会烧掉太多的电池,因为它会持续扫描。
  2. 永远不要打电话给stopRangingBeacons(region)。相反,将扫描周期之间的更改为非常大的内容:beaconManager.setBackgroundBetweenScanPeriod(360000000L) /* 10 hours*/后面跟着beaconManager.updateScanPeriods()。然后,当您想要继续扫描时,将其设置为正常值。
  3. 构建您自己的前台服务,这样您就可以完全控制通知的外观和消失。与库的前台服务共享相同的通知,因此即使库的前台服务停止,您的自定义前台服务仍然显示通知。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69640068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档