是否可以使用ibeacon API访问所有信标



我即将使用具有UUID的Estimote信标完成应用程序硬编码在我的项目中,列出了使用ibeacon API的所有Estimate信标,但当我试图使用设备UUID将我自己的设备作为信标发射机时,这与Estimate UUID不同,我找不到它,因为我在代码中提到的UUID是Estimate的。

所以我的问题是,有没有任何方法可以找到我可以用苹果的ibeacon API跟踪的所有信标(Ex-Estimote Beacon,Kontakt Beacon,Blue cat Beacon和ibeacon硬件)?

使用相同的代码,我想跟踪所有信标,而不硬编码任何UUID?

有可能吗?

不,苹果限制了未知Ibeacon的发现。你找不到任何未知的信标。尽管有一些技巧并没有那么有效。此外,一个应用程序区域不能包含一个以上的Udid。你可以做的是询问用户他想监控什么Udid,然后应用程序就可以找到它。抱歉拼写错误。。

不,您必须告诉CoreLocation您希望应用程序看到的任何iBeacon的ProximityUUID,否则它不会告诉您。请参阅http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html

这并不意味着您需要对应用程序中的每个UUID进行硬编码。这样做需要您在每次添加带有另一个UUID的iBeacon时重新提交应用程序以供批准。

另一种选择是使用web服务为您提供要搜索的UUID列表。你可以建立自己的,或者使用我公司的ProximityKit服务为你做这件事。

我为我的公司编写了一个测试台应用程序,它有一个UUID数组。它使用registerDefault调用将一组默认的UUID保存为用户默认值。

然后,用户可以随意创建新的UUID,并与其他设备共享。(我使用UIActivity,因此您可以通过AirDrop、消息、电子邮件等进行共享)

它允许您以十六进制数字输入UUID,或者您可以点击"创建新UUID"按钮来生成新的UUID。

我包括了Estimote UUID以及苹果公司包括的3个UUID,以及一些独特的UUID。

然后,我们的测试台应用程序使用UUID列表来发送和接收信标ID。

因此,虽然UUID存储在本地,但它们不是硬编码的。

当然,您也可以像David建议的那样,从web服务中获取UUID列表,或者使用iCloud在使用相同AppleID的所有设备中获取用户定义的ID列表。

对于那些想要发现任意iBeacon及其uuid的人来说,这是一个苦涩的事实。

  • 似乎没有任何黑客可以在iOS上寻找任意的iBeacon——你必须至少知道ProximityUUID才能看到
  • 使用核心蓝牙对于使用iBeacons是非常无用的。你可以看到他们的广告,并测量信号强度,但你看不到任何标识符,因此,你甚至不确定你看到的任何广告是否是iBeacon,而不是任何其他BluetoothLE设备

最新更新