locationManager:rangingBeaconsDidFailForRegion:withError:kCLErrorDomain 16

我读过CLLocationManager kCLErrorDomain代码? 以及Apple Docs

我调用startRangingBeaconsInRegion之前检查以确保范围可用:我还检查在locationManager中的range是否可用:rangingBeaconsDidFailForRegion:withError:method。 两次都返回true。

当我得到的监视区域的集合,我的信标是在集(所以注册监测工作)。

我已经看到,错误16可能意味着测距不可用,蓝牙可能closures,位置服务可能会closures,飞行模式可以打开,我已经检查了他们所有都可用并正在运行(显然不是飞行模式)。

什么可能导致测距失败,每次我运行应用程序?

只是为了消除它可能是你的代码中的东西的可能性,尝试一个参考应用程序,如我的定位iBeacon 。 如果它也不起作用,您可能有操作系统或硬件问题。

要解决此问题,请先重新启动手机,然后重试。 然后尝试配对常规的蓝牙设备(耳机,Mac等)。 如果常规的蓝牙配对工作,它可能是一个蓝牙LE问题。

您的iOS设备必须是iPhone 4s +或iPad 3+(BLE需要)。

我的设备更新到iOS 7.1(iPhone 5S)后,似乎开始面对这个问题。 (16)(即使飞行模式没有打开,蓝牙启动并运行), error.domain等于@"kCLErrorDomain"error.codekCLErrorRangingUnavailable

我遵循davidgyoung的build议来启动(我做了一个硬启动,按Home + Power,直到设备closures并显示苹果标志,但也是一个正常的启动工程)设备,现在看来工作正常。

这似乎是iOS 7.1和iOS 7.1.1中的一个错误,请参阅https://stackoverflow.com/a/22949187/1461050 。 目前唯一的解决方法是重启设备。

苹果现在已经发布iOS 7.1.2,它应该解决这个问题(等待确认)。

该问题与CoreBluetooth未知错误1309密切相关。

在某些情况下,似乎CoreBluetooth Stack损坏,唯一的解决办法是重新启动设备。

有很多用户正在报告这种行为。 我们已经向苹果雷达发起了一个错误,我们正在等待回应。

您也可以将问题报告给Apple Radar,以便他们注意到这个错误。