ios - 低功耗蓝牙背景数据 (iBeacons)

标签 ios bluetooth bluetooth-lowenergy ibeacon

我目前正在编写一个应用程序,该应用程序使用 BTLE 在 2 部或多部手机之间传递小串数据。

我目前在前台传递的是:CBAdvertisementDataLocalNameKeyCBAdvertisementDataServiceUUIDsKey。当应用程序位于前台时,我能够(通过 NSLog)恢复通过 CBAdvertisementDataLocalNameKey 传递的字符串。

但是,当应用程序在后台运行时,CBAdvertisementDataLocalNameKey 不会通过。 BTLE UUID 仍然与 RSSI 整数、CBAdvDataChannelCBAdvDataIsConnectable 一起传递。

在梳理了一个名为 Apple Documentation 的看似永无止境的循环之后,我发现无法在应用程序处于后台时传递一个小字符串。在我看来,如果没有办法传递数据,他们将不允许 BTLE 在后台运行。

我的问题是,有没有人知道使用 BTLE 在后台传递数据的变通方法或允许我这样做的方法?任何帮助或提示将不胜感激。

编辑:我应该明确指出,我正在尝试使用的库名为 Vicinity https://github.com/Instrument/Vicinity它使用 CoreBluetooth 来绕过 CoreLocation 的背景限制。

最佳答案

您可能会从这个项目中得到一些用处,它允许设备通过蓝牙 LE 共享字符串数组(例如用户 ID),即使在后台也是如此:SimpleShare

它仍然可以在应用程序处于后台时共享数据,因为它仅在设备通过更改特征值以发送每条数据来订阅广告蓝牙特征时发送数据。您不需要名称 key 来传输信息。

希望对您有所帮助!

关于ios - 低功耗蓝牙背景数据 (iBeacons),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21066803/

相关文章:

ios - 此设备不符合请求的构建条件

android - 我可以绑定(bind)低功耗蓝牙设备吗?

android - 蓝牙 : onConnectionStateChange Status 8 on Samsung phones

iphone - GameKit 蓝牙传输问题

c# - GattCharacteristic.ValueChanged 停止调用

electron - Electron Web蓝牙API requestDevice()错误

go - 如何管理多个连接

ios - 在 iOS 应用程序中播放嵌入的 YouTube 视频,而不是全屏

ios - 是什么使搜索栏选项所选择的Scope ButtonIndexDidChange执行?

ios - 尝试运行项目时出现 "No such Module"错误