android – iBeacon后台扫描

android – iBeacon后台扫描,第1张

概述我写了自己的小BLE扫描服务,每隔3-5秒通过一次警报触发.它扫描1.1秒以获得它周围的信标,然后将RSSI信号转换为粗略接近. 我现在正在考虑Radius Networks Android iBeacon服务,但我想知道如何实现相同的后台扫描. 例如:我希望信标scannign在后台启动和运行,并将Intent接收到广播接收器,以决定我对扫描的信标做了什么. 有没有例子,估计这消耗了多少电池? 我写了自己的小BLE扫描服务,每隔3-5秒通过一次警报触发.它扫描1.1秒以获得它周围的信标,然后将RSSI信号转换为粗略接近.

我现在正在考虑Radius Networks Android iBeacon服务,但我想知道如何实现相同的后台扫描.

例如:我希望信标scannign在后台启动和运行,并将Intent接收到广播接收器,以决定我对扫描的信标做了什么.

有没有例子,估计这消耗了多少电池?

解决方法@H_403_11@ Radius Networks的 Android iBeacon Library正是如此.在后台运行它所需要做的就是将IBeaconManager绑定到具有长生命周期的东西.这可以是自定义的androID.app.Application对象,也可以是您自己的服务.由于您已经为应用程序编写了自己的服务,因此可以轻松地将IBeaconManager绑定到该服务,只要服务运行,它就会在后台保持活动状态.如果您愿意,您也可以使用您的服务发送广播意图,但对于大多数用例,这可能不是必需的.

至于电池使用情况,图书馆的reference application有一个如何在磁带库上设置背景模式的示例,因此扫描发生的频率较低,从而节省电池电量.该参考应用程序中的相关代码如下:

@OverrIDe     protected voID onPause() {            super.onPause();            if (iBeaconManager.isBound(this)) iBeaconManager.setBackgroundMode(this,true);                        }    @OverrIDe     protected voID onResume() {            super.onResume();            if (iBeaconManager.isBound(this)) iBeaconManager.setBackgroundMode(this,false);                        }

将背景模式设置为true可以将蓝牙扫描仅在5分钟内完成 – 这与iOS的 *** 作类似.基于对Nexus 4的测试,这将手机的整体电池消耗从95mA降低到55mA(这两个数字都包括整个 *** 作系统的耗电量.)

完全披露:我为Radius Networks工作,是AndroID iBeaconlibrary的主要作者.

总结

以上是内存溢出为你收集整理的android – iBeacon后台扫描全部内容,希望文章能够帮你解决android – iBeacon后台扫描所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1130491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存