Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android iBeacon';未检测到s大调/小调,除非它';在区域';s设置_Android_Ibeacon_Altbeacon - Fatal编程技术网

Android iBeacon';未检测到s大调/小调,除非它';在区域';s设置

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

我正在努力解决的问题相当简单——我知道我正在使用的iBeacons的UUID,但主/次参数不是预设的,即它们可能会动态变化。我想要实现的是,当
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回调。

明白了,谢谢您的帮助。:)我只是想,可能有一些不明显的参数或我必须打开的东西,使搜索大/小而不必首先指定它们成为可能。