在 iOS 11 中确定信标测距的蓝牙状态

Determine bluetooth state for beacon ranging in iOS 11

在 iOS11 中,用户可以从控制中心和设置中禁用蓝牙。如果在控制中心禁用蓝牙,信标测距仍然可以工作。我尝试在中央管理器中使用 didUpdateState。当以任何一种方式禁用蓝牙时,它只会给我 CBManagerStatePoweredOff 。 有没有办法找出蓝牙是否能够测距?我也试过isRangingAvailable。在我的设备上总是 returns 正确。

在您的 CoreLocation 委托中,实现以下方法:

func locationManager(_ manager: CLLocationManager, 
 rangingBeaconsDidFailFor region: CLBeaconRegion, 
                withError error: Error) {
   // Ranging is not available.  Do something here.
}