在没有 Roximity SDK 的情况下检测 Roximity iBeacon?
Posted
技术标签:
【中文标题】在没有 Roximity SDK 的情况下检测 Roximity iBeacon?【英文标题】:Detect Roximity iBeacon without Roximity SDK? 【发布时间】:2014-01-18 19:10:24 【问题描述】:我们正在考虑从 Roximity 订购一些 iBeacons,但我不清楚我们是否必须将 Roximity SDK 与这些信标一起使用,或者我是否可以使用核心定位功能?
我问的原因是我不想与他们的 SDK 绑定,然后必须总是从他们那里购买信标。
我能够获得 Roxmity 信标的 UUID,但我不知道信标的“标识符”是什么,所以在此代码的情况下:
[[CLBeaconRegion alloc] initWithProximityUUID:_uuid identifier:@"COM.TEST.APP"];
我不知道用什么代替COM.TEST.APP
【问题讨论】:
我认为您在这个令人困惑的标题中想要表达的是,您希望能够通过 Roximity SDK 检测 任何 制造商的 iBeacon,而不仅仅是 Roximity iBeacon。对吗? 嗯,不一定,但无论如何。目前我可以将我的手机变成一个信标,并在不使用 Roximity SDK 的情况下做我需要做的一切,所以我认为我根本不需要他们的 SDK。问题是我无法使用现有代码检测到 Roximity 信标。 @Chris 你是如何获得感应设备的 UUID 的? 原来所有 Roximity UUID 都是:8deefbb9-f738-4297-8040-96668bb44281、8DEEFBB9-F738-4297-8040-96668BB44281 主要,次要呢?我可以配置它吗?如何?谢谢 【参考方案1】:我昨天收到了一些 Roximity 信标,并且在没有 Roximity SDK 的情况下成功使用了它们。我们的信标拥有的 UUID 是:
8DEEFBB9-F738-4297-8040-96668BB44281
我们通过使用我们编写的 Mac 应用程序进行扫描来找到 UUID,该应用程序可以在本地找到任何信标。只需使用该 UUID 创建一个 CLBeaconRegion
并开始测距,它们就会出现。确保您已从电池上取下塑料隔离片。
正如@davidgyoung 下面提到的,identifier
参数不会影响您是否可以检测到信标。
【讨论】:
仅供参考,这与我们的信标具有相同的 UUID,我的猜测是所有 Roximity 信标都具有相同的 UUID,只有主要/次要值不同。 顺便说一句 james(也是@Chris),仅供参考,我的应用程序拒绝使用您上面的 UUID 字符串检测我的 Roximity 信标,但是这个有效:8deefbb9-f738-4297-8040-96668bb44281。把我的头发扯了好久......干杯,祝大家好运!【参考方案2】:您在这行代码中提到的标识符不会影响检测 iBeacon、Roximity 或其他方式的能力:
[[CLBeaconRegion alloc] initWithProximityUUID:_uuid identifier:@"COM.TEST.APP"];
“COM.TEST.APP”标识符只是作为应用程序程序员的参考字符串。通过在构建第二个区域时使用相同的字符串,您是在告诉 ios 这些是完全相同的区域。这对于取消监视或测距很有用。对于使用 CoreLocation APIS 将一个区域替换另一个区域也很有用。
只要你为了这些目的保持一致,那个字符串就可以是你想要的任何东西。
至于更大的问题,如果您可以独立于他们的 SDK 使用他们的信标,请尝试使用我在 AppStore 中的免费 Locate for iBeacon 应用程序检测他们的信标。您必须将 Roximity UUID 添加到配置列表中,但是一旦您这样做了,如果应用能够找到它,这意味着它与标准 CoreLocation iBeacon API 兼容。
【讨论】:
我昨天确实使用了那个应用程序。刚刚再试了一次,它没有看到这些信标。要么我没有他们真正的 UUID,要么有其他东西阻止了检测。 @Chris,你是怎么知道 UUID 的?如果您不确定 UUID,您可以使用 Radius Networks 的其他两个工具确定它(假设它充当标准 iBeacon)——ScanBeacon(适用于您的 Mac)或 Locate for iBeacon for android 4.3。这些工具之所以有效,是因为 OSX Mavericks 和 Android 都允许您查看任何 iBeacon,而无需考虑 UUID。 也许我的 UUID 有误。我使用 iOS 应用程序来找到它们。我必须先升级到 Mavericks,然后才能运行 ScanBeacon。 知道了。我使用的“UUID”实际上是“标识符”值……不知道这意味着什么。但是我使用 OSX 的 ScanBeacon 获得了 UUID 并获得了 UUID 并且它起作用了。谢谢。以上是关于在没有 Roximity SDK 的情况下检测 Roximity iBeacon?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不刷新页面的情况下使用 JS SDK 检测从 fb 注销
广告 SDK 在没有 AppMeasurement 的情况下初始化