Android iBeacon';未检测到s大调/小调,除非它';在区域';s设置
我正在努力解决的问题相当简单——我知道我正在使用的iBeacons的UUID,但主/次参数不是预设的,即它们可能会动态变化。我想要实现的是,当Android iBeacon';未检测到s大调/小调,除非它';在区域';s设置,android,ibeacon,altbeacon,Android,Ibeacon,Altbeacon,我正在努力解决的问题相当简单——我知道我正在使用的iBeacons的UUID,但主/次参数不是预设的,即它们可能会动态变化。我想要实现的是,当BeaconManager调用MonitorNotifier的方法时,能够获得主/次的当前值。出于某种原因,如果区域仅由UUID构建,则它不会通过MonitorNotifier中的主/次命令,例如: val region = Region(uuid.toString(), Identifier.fromUuid(uuid)); 我与通过本机iOS API
BeaconManager
调用MonitorNotifier
的方法时,能够获得主/次的当前值。出于某种原因,如果区域仅由UUID构建,则它不会通过MonitorNotifier中的主/次命令,例如:
val region = Region(uuid.toString(), Identifier.fromUuid(uuid));
我与通过本机iOS API与iBeacon合作的iOS开发人员进行了交谈,他说iOS上的行为完全相同-除非他指定了要搜索的确切值,否则不会通过监控提供主要/次要值
可以通过测距来检测主/辅,但我之所以想继续使用监视,是有原因的(不必深入研究细节-使用dienter
、dideterministeforregion
和dideterministeforregion
方法要容易得多)
有什么我可能遗漏的吗?您对信标监控API工作原理的描述是准确的。这在iOS CoreLocation和Android Beacon库上都是一样的 我是在Android Beacon库上设计此API的人。它是这样工作的,因为我希望它能够很容易地构建跨平台应用程序,所以我将其与iOS相同 iOS之所以能这样工作,是因为苹果在其原有的Geofence Region API的基础上对其进行了建模,该API也会告诉您何时进入或退出,但不会向您提供导致进入或退出的详细信息 您当然可以争论不同的API是否更好。不幸的是,在使用SDK时,您必须接受API的原样。另一种选择是建立自己的
如果您真的希望为特定的检测到的信标/不再检测到的信标事件进行事件回调,那么您可以在范围API的基础上轻松构建该回调。只需跟踪所有可见信标的列表,当发现新信标时,触发didStertDetectingBeacon事件。然后,如果10秒钟后在测距回调中看不到它,则启动didStopDetectingBeacon回调。明白了,谢谢您的帮助。:)我只是想,可能有一些不明显的参数或我必须打开的东西,使搜索大/小而不必首先指定它们成为可能。