【问题标题】:detecting non-iBeacon beacons on iOS?在 iOS 上检测非 iBeacon 信标?
【发布时间】:2017-04-18 17:27:52
【问题描述】:

我目前正在从事一个项目,该项目有一部分与信标相关,因为我看到并阅读了不同的文章和网站,因此不建议使用非 ibeacon 的 ios 以便在时间和背景可访问性方面可检测检测。我读了这篇文章: "Can we detect non-iBeacon beacons on iOS?" 所以基本上,我们可以使用ibeacon协议来唤醒我们的手机,然后使用我们的数据包,所以我的问题是,唤醒我们的手机后,我们如何使用我们自制的协议连接到我们的相关应用程序?我们必须为自己的数据包使用 CoreBluetooth 吗?如果是的话,它在 ios 可以多快检测到该权限甚至权限方面是否有副作用?另一个问题是,唤醒手机后,我们可以向 iOS 发送多少字节?还是一定数量吗?或者我们可以扩展它?基本上,我们可以在我们的第一个 ibeacon 数据包之后发送一个 100KB 的文件吗?

谢谢...

【问题讨论】:

    标签: ios bluetooth-lowenergy ibeacon iot


    【解决方案1】:

    在 iOS 上,您可以使用两种截然不同的 API 来检测类似信标的蓝牙 LE 设备,每种 API 各有优缺点:

    核心位置

    优点:

    • 即使在后台也能快速检测
    • 通过蓝牙 LE 信标检测唤醒您的应用
    • 在信标用例中使用起来更加简单
    • 现成的信标价格便宜,可从许多供应商处获得

    缺点:

    • 您必须知道 16 字节的 ProximityUUID 标识符才能检测
    • 除上述标识符外,只有四个数据字节(两个字节主要和两个字节次要)

    核心蓝牙

    优点:

    • 比 CoreLocation 灵活得多
    • 您可以在一个广告包中接收大约 20 个字节的有用数据
    • 如果您建立蓝牙 GATT 连接并交换多个数据包,您可以接收更多的数据。当然可以转移 100K。

    缺点:

    • 无法使用制造商广告在后台进行检测
    • 在后台检测服务广告很慢
    • 通常需要自定义构建的信标(除非您使用 AltBeacon 或 Eddystone)
    • 不会让您阅读 iBeacon -- 它已被 Apple 阻止

    您可以尝试通过组合两种 API 来获得两全其美。您可以通过使用两个不同的硬件信标(一个 iBeacon,一个自定义)或一个发送两个不同的广告类型。

    这些技术的主要技巧是将两个广告关联起来,因为 iOS API 彼此之间是完全沙盒化的,它们之间不能共享标识符。我通常采用的方法是简单地使用 iBeacon 唤醒我的应用程序,然后让它开始扫描具有已知服务 UUID 的单独蓝牙 GATT 服务(在前台或后台)。一旦我找到它,我就会连接到它并使用它进行数据交换。使用这种技术,我不需要关联任何标识符。我只知道,如果我看到一个带有特定 ProximityUUID 的信标,那么这意味着附近应该有一个蓝牙 GATT 服务正在广告中,我可以使用它来进行数据交换。

    【讨论】:

    • 非常好的和详细的答案。然而,考虑到 BLE 的性能,100 KB 的传输,即使它绝对是可能的,也可能不是最好的主意,并且需要几十秒,甚至可能更多。
    • 谢谢@davidyoung,我只想知道如果我用 iBeacon 唤醒我的应用程序然后搜索另一个 UUID,检测到非 iBeacon 数据包需要多长时间?是按秒还是按分钟?对于连接部分,我们是否必须完成所有配对程序?或者我们可以有轻量级的连接来在我们的 BLE 和我们的应用程序之间传输数据?
    • 感谢@jcaron 的评论,您知道无需配对即可连接到我的 ios 应用程序的更有效方法吗?说我的意思是传输数据。
    • iBeacon 唤醒后,一般几秒内即可找到 GATT 服务广告。连接不像经典的蓝牙配对,不需要人工干预,但它会停止信标广告,直到传输完成并断开连接。是的,我预计 100k 传输需要几十秒。
    • 感谢@davidgyoung 的详细回答,我想这肯定需要太多的时间,但据我所知,BlueCats 等一些信标公司已经解决了双向连接问题。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 2015-03-31
    • 2014-09-21
    • 1970-01-01
    相关资源
    最近更新 更多