当我在设置中关闭蓝牙时,我使用CBCentralManager获取蓝牙的状态如下:
self.bluetoothManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];系统将显示如下警告:系统警报
蓝牙的当前状态是CBManagerStatePoweredOff。但是当我关闭控制中心的蓝牙时,即使蓝牙的当前状态仍然是CBManagerStatePoweredOff,这个警报也不再显示。
在这种情况下,我如何提醒用户打开蓝牙?
发布于 2017-09-26 12:17:13
您可以通过实现以下委托方法来提醒用户。
//Bluetooth state delegation
#pragma mark - CBCentralManagerDelegate
- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
NSString *stateString = nil;
switch(self.CBManager.state)
{
case CBManagerStateResetting:
stateString = @"The connection with the system service was momentarily lost, update imminent.";
break;
case CBManagerStateUnsupported:
stateString = @"The platform doesn't support Bluetooth Low Energy."; break;
case CBManagerStateUnauthorized: stateString = @"The app is not authorized to use Bluetooth Low Energy.";
break;
case CBManagerStatePoweredOff:
stateString = @"Bluetooth is currently powered off.";
break;
case CBManagerStatePoweredOn:
[self.beaconManager startMonitoringForRegion:self.museumsRegion];
[self.beaconManager startRangingBeaconsInRegion: self.museumsRegion];
break;
case CBManagerStateUnknown:
stateString = @"State unknown, update imminent.";
break;
}
NSLog(@"%@", stateString);
}现在应该自动通知用户。
发布于 2017-11-17 14:26:24
可以在选项dict中使用CBCentralManagerOptionShowPowerAlertKey禁用系统BlueTooth警报。
NSDictionary *options = @{CBCentralManagerOptionShowPowerAlertKey: @NO};
self.bluetoothManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];然后您可以使用删除方法centralManagerDidUpdateState:弹出您的自定义警报。
https://stackoverflow.com/questions/46426163
复制相似问题