• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iOS11蓝牙有点奇怪

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:47:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

当我在设置中关闭蓝牙时,我使用 CBCentralManager 来获取蓝牙的状态,如下所示:

self.bluetoothManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];

系统将显示如下警告:system alert

蓝牙的当前状态是CBManagerStatePoweredOff。但是当我在控制中心关闭蓝牙时,即使蓝牙的当前状态仍然是 CBManagerStatePoweredOff,此警报也不再显示。

在这种情况下如何提醒用户开启蓝牙?



Best Answer-推荐答案


您可以通过实现以下 delegate 方法来提醒用户。

//Bluetooth state delegation
#pragma mark - CBCentralManagerDelegate

- (void)centralManagerDidUpdateStateCBCentralManager *)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);
}

现在应该自动通知用户。

关于iOS11蓝牙有点奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426163/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap