【问题标题】:Sending only one iBeacon Packet仅发送一个 iBeacon 数据包
【发布时间】:2014-10-14 09:55:05
【问题描述】:

是否可以只发送 1 个 iBeacon 数据包?我尝试过使用CBPeripheralManager,但是由于只有两种方法可以启动和停止广播,所以我无法控制广播的数据包数量。

我想做的是使用 iBeacon 数据包作为命令,而不仅仅是广播某个 ID。所以我可以发送 1 个 iBeacon 数据包,如果接收方收到消息,它可以用另一个 iBeacon 数据包发回确认。目的是避免配对蓝牙发送非常简单的数据。该信息将链接到数据包的 UUID、主要和次要。

或者有没有比使用 iBeacon 更好的方法。

【问题讨论】:

  • 低功耗蓝牙不需要配对来交换数据,除非您指定需要加密。发现、连接和数据交换可以在几秒钟内完成
  • @Paulw11 这样可以只使用CoreBluetooth 来完成吗?我会调查一下谢谢。

标签: ios ibeacon


【解决方案1】:

是的,您可以使用 iBeacon 技术在两台 iOS 设备之间来回发送信息,无需配对。如果您有两个设备,设备 A 和设备 B,则将它们都设置为具有通用 ProximityUUID 的信标的范围,例如 E2C56DB5-DFFB-48D2-B060-D0F5A71096E0。然后你可以在两个字节的主要和次要字段中交换信息。

你不能做的是控制发射器足以只发送一个 iBeacon 广告。 iOS 中的发送器每秒发送 10 个广告数据包,因此您可以做的最好的事情是启动发送器,然后在大约 100 毫秒后在计时器上停止它。 (您可能不应该这样做,因为不能保证单个 iBeacon 广告数据包会被其他设备成功接收——它可能由于无线电噪声中的 CRC 错误而丢失。您可能最好让数据包继续传输,直到您可以从其他设备的响应中确认它已收到。)

您可以在我的回答 here. 中看到在计时器上启动和停止发射器的示例

当然,使用内置蓝牙数据交换机制可能有更简单、更强大的方法来完成您想要的任务。但这并不能改变您的提议肯定是可能的事实。

【讨论】:

    【解决方案2】:

    不,你不能,因为 iBeacon 是单向设备

    【讨论】:

    • 我知道 iBeacon 是单向的,我只是想以非设计用途的方式使用它……看看是否可行。但由于 Paulw11 提到 BLE 不需要配对,我可能会先研究一下。
    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 2016-04-19
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多