【问题标题】:iBeacon on iOS8 not working properly?iOS8 上的 iBeacon 无法正常工作?
【发布时间】:2014-10-23 10:22:39
【问题描述】:

我在 iPhone 4S 上运行 iOS8 beta 5,无法让 iBeacon 监控/测距可靠地工作。我最初接到了一个关于 didDetermineState 的电话,告诉我我已经离开了信标区域,但随后我再也没有接到任何电话,即使我显然在信标区域之内或之外。在最初调用 didDetermineState 时,我没有接到对 didExitRegion 的调用,这似乎也是错误的。

有人经历过吗?我已授予 Always 授权

【问题讨论】:

  • 您是否也在您的 plist 中添加了 NSLocationAlwaysUsageDescription 或 NSLocationWhenInUseUsageDescription ?就像在stackoverflow.com/questions/24062509/…中提到的一样@
  • 是的。我已经收到了始终授予位置访问权限并授予它的弹出窗口。
  • 我没有在4S上试过,只在iPad Mini上试过,很好——7和8下的代码完全相同

标签: ios ios8 core-bluetooth ibeacon


【解决方案1】:

您是否尝试过 Apple 提供的 Airlocate 示例代码? https://developer.apple.com/library/ios/samplecode/airlocate/introduction/intro.html 试试这个,虽然我试过了,但它应该可以工作,即使使用“经过验证”的代码,我也无法范围或监控任何东西。 此外,我还发现了这个有趣的网络,理论上你需要考虑到在 IOS 8 中使用 iBeacons 的所有内容: http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/

但我认为您的问题是因为您的广告格式不是 Apple 的。您必须修改公司标识符代码才能设置此 0x004C,它与 Apple 的匹配。 我有北欧的公司标识符:

      +----------------------------------------------------+----------------- - - -
|     Packet sniffer frame header                    |
+----+-------------+-------------------------+-------+
|info| Packet nbr. | Time stamp              | Length|  Packet data
+----+-------------+-------------------------+-------+----------------- - - -
| 01 | 0C 00 00 00 | 49 12 27 44 00 00 00 00 | 30 00 | 2F D6 BE 89 8E 40 24 4E A0 C3 8B 04 FF 02 01 04 1A FF **59 00** 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 00 01 00 01 BB BA 88 BA 37 A5
+----+-------------+-------------------------+-------+----------------- - - -

你需要:

+----------------------------------------------------+----------------- - - -
|     Packet sniffer frame header                    |
+----+-------------+-------------------------+-------+
|info| Packet nbr. | Time stamp              | Length|  Packet data
+----+-------------+-------------------------+-------+----------------- - - -
| 01 | 01 00 00 00 | ED 07 68 00 00 00 00 00 | 30 00 | 2F D6 BE 89 8E 40 24 E4 98 E6 3C 1B 5D 02 01 1A 1A FF **4C 00** 02 15 01 12 23 34 45 56 67 78 89 9A AB BC CD DE EF F0 00 00 00 00 C5 E8 19 24 3A A5
+----+-------------+-------------------------+-------+----------------- - - -

我在 ** ** 之间放置了您应该修改的十六进制数字。 现在它非常适合我。

问候。

【讨论】:

  • +1,这正是我的问题。如果您遇到类似的事情,听起来很愚蠢,您可能想看看 Android 手机是否可以拾取您的信标来尝试诊断问题。 Android 应用程序“nRF Beacon”为此非常出色。
  • 我们目前正在使用 Nordic SoC,我们的 Android 和 iOS 应用程序运行良好。主要问题是在后台捕获蓝牙数据报(我建议检查“AltBeacon”库,但其余部分使用谷歌提供的示例完美。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2016-12-01
  • 2017-07-15
相关资源
最近更新 更多