在没有 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 SDK 的情况下为 webjobs 设置警报

如何在不刷新页面的情况下使用 JS SDK 检测从 fb 注销

广告 SDK 在没有应用程序 ID 的情况下初始化

广告 SDK 在没有 AppMeasurement 的情况下初始化

有没有办法在没有 SDK 的情况下在 facebook messenger 上分享文本?

如何在没有 SDK 的情况下“下载”Android Studio IDE?