0

我一直在尝试运行 iBeacon Receiver 示例。该代码应该检测设备进入区域并退出区域。iBeacon 区域由运行在另一台 iOS 设备上的发射器创建。

接收器代码在我拥有的其中一台设备(iOS 7.0.1)中完美运行。它正在检测该区域的进出。但是相同的代码在其他几台装有 iOS 7.1 [iPad Air] 和 iOS 8.0 [iPad Mini] 的设备上不起作用。

我相信这些硬件支持蓝牙 LE。

我会丢失设备上的一些配置吗?我无法追踪它。你能建议吗?

4

2 回答 2

0

AFA iOS 8,当您请求权限时,请务必添加新的 info.plist 条目来描述您的应用程序请求特定权限类型的原因,否则它将继续(令人沮丧地)静默失败。

请参阅http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/(通过SO链接到:iOS:应用程序在安装应用程序时未询问用户许可。获取kCLAuthorizationStatusNotDetermined每次 - Objective-c 和 Swift)了解更多信息。

我看到表明您处于“没有 plist 条目”状态的一种症状是,在“设置”中查看定位服务权限时,您可以手动将权限设置为“始终”,但是当您运行应用程序时,选择清除(即,您没有选择该应用程序的位置服务权限)。

于 2014-12-27T21:39:55.137 回答
0

在 iOS 7 上运行的 Beacon 应用程序在为 iOS 8 构建时,如果它们没有请求位置权限,它们将无法检测到信标。有关详细信息,请参见此处:

在 iOS 8 Beacon 中未检测到

这无法解释为什么您提到的代码在 iOS 7.1 上不起作用,因此该设备可能存在硬件问题(蓝牙关闭或不支持蓝牙 LE。)第一个支持蓝牙 LE 的 iOS 设备是 iPhone 4S 所以 4 和更早的设备无法检测信标。

于 2014-12-27T18:07:52.660 回答