当我的应用程序在后台或未运行时,我可以为信标设置范围并发送位置更新吗?

时间:2016-01-11 21:33:59

标签: ibm-cloud estimote indoor-positioning-system presenceinsights

我一直在使用IBM Presence Insights来记录用户的室内位置'移动设备。我正在使用信标基础架构,并使用Presence Insights SDK构建应用程序。

即使应用程序在后台,我的应用程序/手机是否会触发信标并向Presence Insights发送位置更新?如果应用程序没有运行怎么办?我需要知道Android和iOS的这种行为。

2 个答案:

答案 0 :(得分:2)

做了一些调查。对于不同的操作系统,后台范围的能力是不同的。

对于iOS:

  • iOS可以使用" region"在后台监控信标。监控。这与特定信标的范围不同,因为它监视大区域/信标组。该方法几乎不会快速耗尽电话的电池并为用户提供更多隐私。这是从Apple构建基于位置的应用程序的推荐方法,也是我们在SDK中所做的。

  • 区域监控在应用程序处于后台,前台或完全被杀死时起作用,请参阅此链接以获取更多信息:https://community.estimote.com/hc/en-us/articles/203356607-What-are-region-Monitoring-and-Ranging-

  • 上面的链接谈到了限制,最明显的是,即使不使用应用程序,用户也必须允许访问您的位置"
  • 当手机未被使用时,或者应用程序在后台,SDK将每隔15分钟监控这些信标范围(这似乎根据iOS设备,操作版本等级而有所不同)
  • 当手机处于使用状态时,以及在FOREGROUND中,它将持续不断地进行信标测试(应用程序开发人员不应该做任何事情来启动此过程。)
  • (对我而言,这意味着有可能有人可以进入和离开场地而根本不使用他们的手机。如果他们在15分钟内完成,则根本不会被检测到。)
  • 所有这些监控只有在用户下载了应用程序并且应用程序开发人员已经开始" PI信标传感器。这是必需的,以便PI可以获取与组织关联的信标列表,并使用电话OS注册这些信标区域。出于这个原因,我们建议应用程序开发人员在应用程序启动后立即启动信标感应。
  • 我不确定这种监控是否会在电话重启后继续存在。

对于Android:

  • Android没有操作系统提供的区域监控概念。
  • 我们创建的后台进程使用scanPeriod(扫描时间)和之间的扫描时间(在唤醒和扫描BLE之前等待多长时间)
  • 目前,如果用户打开Android应用程序,我们将创建此后台进程,每5分钟运行一次并扫描BLEs
  • 目前,由于这些值
  • ,这会使电池耗尽
  • 如果用户强制关闭应用程序,它将关闭后台进程,因此不会进行扫描。我们正在寻找通过在应用关闭时重新启动后台服务来解决此问题的方法
  • Android后台进程无法在手机重启后继续存在,因此如果用户重新启动手机但未打开应用程序,则永远不会扫描信标

我们正在努力妥善记录所有这些。目前该领域有很多积极的发展,这使得保持最新状态变得困难。

答案 1 :(得分:0)

适用于iOSAndroid的Presence Insights SDK不包含任何特定于在后台状态下运行应用的代码 - 您编写应用程序的方式将决定它们是否以及如何运行在后台。

以下是iOSAndroid关于设置后台进程的一些好消息,以及docs for the mobile application SDKs。有很多选择。

智慧之言 - 如果你不小心设置后台进程,就可以杀死别人的电池。

希望这有帮助