gpt4 book ai didi

android - 如何使用适用于 Android 的 AltBeacon 库在运行时启动/禁用信标的后台监控?

转载 作者:行者123 更新时间:2023-11-29 17:33:52 24 4
gpt4 key购买 nike

AltBeacon documentation假设我需要在 Application onCreate() 中初始化库以进行后台监控。

但我有在运行时初始化它所需的数据。

特别是在运行时(在远程 http 服务调用之后)我知道:

  • IF 信标跟踪应该开始
  • 监控哪些区域

此外,如果某些条件发生变化(远程配置),我可能需要将其完全关闭。

当前版本的库 (2.5+) 处理此用例的正确方法是什么?

最佳答案

使用 Android Beacon Library 时要在后台检测信标,您可以在自定义应用程序类中构造一个 RegionBootstrap 类,如 Starting an App in the Background 中所述。 sample 部分。

此示例显示了在 onCreate 方法中设置初始 Region,但没有理由像示例中那样需要将其设置为静态。欢迎您执行代码来调用服务,以获取有关是否应启动信标扫描以及应在 Region 定义中使用哪些标识符的信息。如果您将它放在对 Web 服务调用的响应之后,您只需将这行代码移到该回调中:

regionBootstrap = new RegionBootstrap(this, region);

为了与自定义 Application 类一起使用,第一个参数仍然需要是对该类的引用。另请注意,此类有一个替代构造函数,它采用 Regions 列表,以备您要监视更多区域时使用。

如果您想稍后更改受监控的区域,那么最简单的方法是使用如下调用:

BeaconManager.getInstanceForApplication(context)
.stopMonitoringBeaconsInRegion(oldRegion);
BeaconManager.getInstanceForApplication(context)
.startMonitoringBeaconsInRegion(newRegion);

请注意,也可以在初始设置中使用上述技术。您可以在 Application onCreate 方法中构建一个虚拟区域来实例化 RegionBootstrap,然后使用上面的方法调用来配置不同的区域从您的网络服务获取回调。

请注意,停止监视某个区域时,您需要对该区域的引用。这不需要是同一个对象——停止监视唯一真正重要的是 Region 类的唯一标识符。这是一个 String 字段,用作标识 Region 的键。在下面的示例中,该唯一标识符是“com.example.myapp.boostrapRegion”。

Region region = new Region("com.example.myapp.boostrapRegion", null, null, null);

关于android - 如何使用适用于 Android 的 AltBeacon 库在运行时启动/禁用信标的后台监控?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31588667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com