如何在 iOS、Swift 中搜索 iBeacons UUID,并扫描周围的所有 iBeacons

Posted

技术标签:

【中文标题】如何在 iOS、Swift 中搜索 iBeacons UUID,并扫描周围的所有 iBeacons【英文标题】:How to search for iBeacons UUID, and scan for all iBeacons around in iOS, Swift 【发布时间】:2015-09-25 07:19:31 【问题描述】:

我正在开发一个可以检测我周围 iBeacon 设备的 ios 应用。 据我了解,我们需要知道具体的 UUID 才能扫描它们。

这里是:Search for all iBeacons and not just with specific UUID

考虑到这一点,我使用核心定位,我可以检测到我的信标,好的!

问题是,当我在 AppStore 中尝试多个应用程序时,一些应用程序可以扫描我所有具有不同 UUID 的信标(我有超过 90 个具有 8 个不同 UUID 的信标)!怎么可能??

应用 1:https://itunes.apple.com/us/app/ebeacon/id730279939?mt=8

应用 2:https://itunes.apple.com/nl/app/dartle-ibeacon-locator/id904211297?l=en&mt=8

所以我的第一个想法是他们使用某种来自 Apple 的私有框架,但如果你这样做,你的应用将不允许发布!,嗯...

所以我的问题是,他们怎么能做到这一点? - 他们是否有来自所有 iBeacon 制造商的所有 UUID 的列表? - 或者他们知道一种扫描所有周围 iBeacons UUID 的方法?

有人可以帮我回答这个问题吗?

【问题讨论】:

【参考方案1】:

Apple 的意图是您无法找到您周围的所有信标,主要是出于隐私原因,但也是为了节省电量。您的应用只能使用特定的信标,因此您需要设置所有您的信标,以便您的应用能够识别它们。您应该无法检测到 my 应用使用的信标。因此,只有当用户明确下载并运行应该检测到该信标的应用程序时,才会检测到信标的存在。

顺便说一句。如果您购买 Beacon,它们应该带有一个应用程序(通常是 Mac 或 Windows 应用程序),可以让您更改其 ID。因此,如果 Joe 的 Carwash 应用程序使用信标,Joe 会购买 100 个信标,然后将它们全部设置为 Joe 的 Carwash 应用程序可识别的 ID。否则,如果信标坏了,需要更换,然后 Joe 需要更新他的应用程序,Joe 就会遇到真正的麻烦。相反,如果设置为 ID xxxxx 的信标中断,Joe 会购买一个新的信标,将其 ID 更改为 xxxxx,并将其放在之前的信标所在的位置。

【讨论】:

谢谢,我只是做了更多的测试,好像在安卓上,你可以扫描周围所有可用的信标,但不能扫描苹果。这意味着其他应用程序需要了解更多制造商 UUID 才能检测到它们。你知道这些资源吗?

以上是关于如何在 iOS、Swift 中搜索 iBeacons UUID,并扫描周围的所有 iBeacons的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 Ibeacon 搜索功能将 angularjs Web 应用程序转换为 IOS 应用程序?

iOS 7.1.2:iBeacon 真正发生了啥变化?

屏幕关闭时如何在 iOS 应用程序中检测 iBeacon?

iOS Swift:计算与 RSSI 的距离

自 Xcode 6.3 以来可能出现的新 iBeacon 监控问题

如何在 iOS 7 中使用 iBeacons 获取设备详细信息,如 UUID 或设备名称