ios - 信标测距与 BLE 扫描
问题描述
我试图了解信标测距和 BLE 扫描之间的区别。据我了解,信标测距使用 BLE 扫描来查找信标。最重要的是,它使用信号强度(我不需要)计算信标的接近度。我只需要检测信标(类似于信标监控)。由于 IOS 中的 Always 权限要求,我没有使用信标监控。我知道与测距相比,信标监控得到了高度优化,但我想知道测距与 BLE 扫描相比如何。
我可以
BLEModule.scanForDevices(UUID)
代替CLLocationManager.startRangingBeacons(region)
检测信标吗?如果是,我可以在检测到信标时以类似方式获得回调吗?在电池性能或检测时间等方面这样做有什么缺点吗?
请注意,我愿意在没有接近信息(与信标的距离)的情况下凑合。
另外,一个相关的问题:
- 可以在 iOS 中使用 WhenInUse 权限在前台使用信标监控吗?(我在最初的调查中发现对此的看法不一)
解决方案
您不能使用 Core 蓝牙扫描来检测 iBeacon。您必须使用 Core Location 和 monitor aCLBeaconRegion
来发现 iBeacon。
发现信标后,您无需对其进行范围设置。
重要的
应用程序必须始终具有使用区域监控的授权,并且它们必须配置有位置更新后台模式才能启动。
即使您只在应用程序处于前台时需要信标通知,您也必须始终请求许可。
推荐阅读
- javascript - 如何在使用 JWT 进行身份验证后呈现
- android - HttpURlConnection 未连接
- html - 对象标记呈现 html 文档。如何将 css 应用于该文档?
- android - 工具栏仅在平板电脑尺寸上左右填充
- tcl - 是否有无符号 __int64 的 Tcl_GetInt 版本
- angular - 单击“添加”按钮时,Angular 表单无法动态添加文本框
- go - 有没有办法计算对 sql.Exec 的每次调用?
- c++ - 如何正确实现 -> 和 (*)。使它们的行为类似于 -> 和 (*)。在迭代器中
- angular - AGGrid - RowGroupOpened - 如何区分打开和关闭组?(服务器端模型)
- linq - 当我们连接到 MySql 时,Any() 方法不起作用