1

情况如下:
我有一个自制的信标,它宣传的数据(温度数据)比它的 UUID、主要值、次要值更多。当我的应用程序处于前台并扫描时,我可以获得更新的温度值(无需连接)。"didEnterRegion"此外,当发生事件时(仅当应用程序关闭时) ,我会收到一个简单的本地通知(说“进入信标范围!” )。

我想在此通知中设置更新的温度值,但我正在为此苦苦挣扎。有没有人已经做过这样的事情?我只发现了这个:ibeacon-get-major-and-minor-only-looking-for-uuid但它没有帮助,因为值仍然是固定的。

有小费吗?

4

1 回答 1

0

您可以使用CoreBluetooth在前台和后台阅读广告。但是对于不同的广告类型,规则是不同的。

  • 只有当应用程序处于前台时,才能读取制造商广告类型。应用程序不会在后台获取 iOS 上的回调。

  • 服务广告可以在前台和后台读取。这些必须具有服务 UUID,并且可以包含其他服务数据。

  • iBeacon 广告是制造商广告的一种特定模式,其数据在前台和后台都被阻止读取。CoreBluetooth标识符可以CoreLocation在前台和后台读取。但他们不能有额外的数据。

如果您想在后台从广告中读取临时数据(无需连接),您有两种选择:

  1. 使您的信标发送自定义服务广告,并在服务广告数据中包含温度。

  2. 使用 iBeacon 并对主要或次要字段中的温度数据进行编码。

于 2015-10-23T11:03:29.440 回答