某些手机的信标扫描延迟(例如One plus,一些摩托罗拉设备)



我创建了一个应用程序,扫描(测距)信标在前台,后台,也当应用程序被杀死。我在这个项目中使用了altbeacon库。根据altbeacon图书馆成员davidjyoung的建议,为了后台扫描,我启动了前台服务

它在大多数设备上工作得很好,但在某些手机(one plus,小米,一些摩托罗拉设备)中,获得扫描信标的间隔非常高(有时大约50秒到1分钟)。有人能建议我该怎么做吗?

请给出建议。

提前谢谢你。

所有设备的代码都是相同的,但在某些手机中差距非常大。

许多Android oem定制蓝牙堆栈以节省电池和警察后台活动。众所周知,小米、一加、华为和其他中国oem都是如此。这些更改主要有两种方式:

  1. oem杀死在后台运行的应用程序。DontKillMyApp的工作人员很好地记录了这一点,并提供了一些解决方案。这些解决方案通常意味着指示用户进入Android设置,将你的应用从专有的后台省电程序中排除。
  2. oem限制蓝牙扫描的频率,当应用程序在后台或屏幕关闭时关闭无线电接收器以阻止扫描。如第一点所述,将应用排除在后台限制之外可能有帮助,也可能没有帮助。

不幸的是,如果你已经让用户将你的应用排除在后台限制之外,但你仍然看到这些问题,你就无能为力了。您可能需要重新设计您的应用程序,以在这些oem的限制下工作,阻止这些oem对手机的应用程序的支持,或者将用户体验更改为仅面向有问题的oem。你可以在这里了解更多关于这个话题的想法,当然也要让你的老板或项目经理知道这些限制。

最后一点:根据我的经验,摩托罗拉通常不是一个有问题的OEM。它曾为谷歌所有,多年来一直与开源Android保持密切联系。如果您在摩托罗拉上看到问题,您可能需要寻找其他原因。使用图书馆的参考应用程序进行测试,并确认您看到相同的问题,并使用10Hz和高发射机功率的质量信标广告进行测试。

最新更新