我一直试图运行iBeacon Receiver样本。该代码应该检测设备进入区域并退出区域。 iBeacon区域由在另一台iOS设备上运行的发射器创建。
接收器代码在我拥有的其中一个设备(iOS 7.0.1)中完美运行。它正在检测该区域的进出。但是相同的代码在iOS 7.1 [iPad Air]和iOS 8.0 [iPad Mini]的其他几个设备上不起作用。
我相信这些硬件支持蓝牙LE。
我是否会遗漏设备上的某些配置?我无法追踪它。你能建议吗?
答案 0 :(得分:0)
如果没有请求位置权限,那么在iOS 7上构建的Beacon应用程序无法检测到为iOS 8构建的信标。有关详细信息,请参见此处:
这无法解释为什么你提到的代码在iOS 7.1上不起作用,所以也许该设备存在硬件问题(蓝牙关闭或蓝牙LE不受支持。)第一个支持蓝牙LE的iOS设备是iPhone 4S所以4以前的设备无法检测到信标。
答案 1 :(得分:0)
AFA iOS 8,当您请求权限时,请务必添加新的info.plist条目,说明您的应用为什么请求特定权限类型,否则它将继续(令人沮丧地)无声地失败。
有关详细信息,请参阅http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/(通过SO链接:iOS: App is not asking user's permission while installing the app. getting kCLAuthorizationStatusNotDetermined every time - Objective-c & Swift)。
我发现有一种症状表明你没有使用plist条目"" state是指在设置中查看位置服务权限时,您可以手动将权限设置为"始终"但是当您运行应用程序时,选择会清除(也就是说,您没有选择该应用程序的位置服务权限。)