美文网首页
蓝牙关闭状态的提示及指导用户开启

蓝牙关闭状态的提示及指导用户开启

作者: ShenYj | 来源:发表于2017-04-08 10:49 被阅读155次

在使用CoreBluetooth时,发现了一些小的细节问题

  1. 当蓝牙状态关闭时,初始化CBCentralManager时,我们可以通过指定CBCentralManagerOptionShowPowerAlertKey来决定我们是否需要使用系统默认的提醒

考虑到系统默认的提醒只有两个选项:

  • 设置 --->点击后跳转到蓝牙设置界面
  • 好 --->不做任何处理
    对于一小部分人群,理解上可能存在奇异,误点了反而没任何变化,所以我们可以通过指定CBCentralManagerOptionShowPowerAlertKey,关闭系统默认提醒,我们自定义一个alertView来指导用户操作

参考链接

2.在之前跳转到指定设置界面的做法是:

  • 设置info.plist文件 --> Target -> Info -> URL Types,点击“+”,将URL Schemes设置为prefs
  • 通过prefs:root=XXX配置url,通过application跳转到指定页面
    e.g.
  prefs:root=General&path=About
  prefs:root=General&path=ACCESSIBILITY
  prefs:root=AIRPLANE_MODE
  prefs:root=General&path=AUTOLOCK
  prefs:root=General&path=USAGE/CELLULAR_USAGE
  prefs:root=Brightness    //打开Brightness(亮度)设置界面
  prefs:root=Bluetooth    //打开蓝牙设置
  prefs:root=General&path=DATE_AND_TIME    //日期与时间设置
  prefs:root=FACETIME    //打开FaceTime设置
  prefs:root=General    //打开通用设置
  prefs:root=General&path=Keyboard    //打开键盘设置
  prefs:root=CASTLE    //打开iClound设置
  prefs:root=CASTLE&path=STORAGE_AND_BACKUP    //打开iCloud下的储存空间
  prefs:root=General&path=INTERNATIONAL    //打开通用下的语言和地区设置
  prefs:root=LOCATION_SERVICES    //打开隐私下的定位服务
  prefs:root=ACCOUNT_SETTINGS
  prefs:root=MUSIC    //打开设置下的音乐
  prefs:root=MUSIC&path=EQ    //打开音乐下的均衡器
  prefs:root=MUSIC&path=VolumeLimit  //打开音乐下的音量
  prefs:root=General&path=Network    //打开通用下的网络
  prefs:root=NIKE_PLUS_IPOD    
  prefs:root=NOTES    //打开设置下的备忘录设置
  prefs:root=NOTIFICATIONS_ID    //打开设置下的通知设置
  prefs:root=Phone    //打开电话设置
  prefs:root=Photos    //打开设置下照片和相机设置
  prefs:root=General&path=ManagedConfigurationList    //打开通用下的描述文件
  prefs:root=General&path=Reset    //打开通用下的还原设置
  prefs:root=Sounds&path=Ringtone
  prefs:root=Safari    //打开设置下的safari设置
  prefs:root=General&path=Assistant    //打开siri不成功
  prefs:root=Sounds    //打开设置下的声音设置
  prefs:root=General&path=SOFTWARE_UPDATE_LINK    //打开通用下的软件更新
  prefs:root=STORE    //打开通用下的iTounes Store和App Store设置
  prefs:root=TWITTER    //打开设置下的twitter设置
  prefs:root=FACEBOOK    //打开设置下的Facebook设置
  prefs:root=General&path=USAGE    //打开通用下的用量
  prefs:root=VIDEO    
  prefs:root=General&path=Network/VPN        //打开通用下的vpn设置
  prefs:root=Wallpaper    //打开设置下的墙纸设置
  prefs:root=WIFI    //打开wifi设置
  prefs:root=INTERNET_TETHERING

但此方式在iOS 10下已经失效,在iOS 10下,比如我们想要跳转到蓝牙设置界面的做法是:
NSURL *url = [NSURL URLWithString:@"App-Prefs:root=Bluetooth"];,区别就是在prefs:root前加上了App-,接下来只需要在不同版本判断即可

代码:

if (iOS10) {
        NSURL *url = [NSURL URLWithString:@"App-Prefs:root=Bluetooth"];
        if ([[UIApplication sharedApplication] canOpenURL:url] )
        {
            [[UIApplication sharedApplication] openURL:url];
        }

    } else {
        NSURL *url = [NSURL URLWithString:@"prefs:root=Bluetooth"];
        if ([[UIApplication sharedApplication] canOpenURL:url] )
        {
            [[UIApplication sharedApplication] openURL:url];
        }
    }

如果只需要跳转到系统的总设置界面,只需要

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

相关文章

  • 蓝牙关闭状态的提示及指导用户开启

    在使用CoreBluetooth时,发现了一些小的细节问题 当蓝牙状态关闭时,初始化CBCentralManage...

  • android专题-蓝牙扫描、连接、读写

    常用业务API 1.判断当前蓝牙是否已经开启,如果没有开启提示用户开启2.实时扫描周边蓝牙,获取蓝牙名给用户选择3...

  • 记一次线程死锁导致的anr问题分析

    问题描述:连接蓝牙鼠标后,关闭蓝牙,再重新开启蓝牙,会出现系统界面没有响应提示 分析tracelog: 可以看到A...

  • VMware虚拟机Kali中添加蓝牙设备

    在宿主机中,先手动把蓝牙设备关闭关闭后就不出现蓝牙状态了 进入VMware的kali虚拟机中,开启蓝牙服务: WM...

  • 资源盒子(安卓)

    是否开启:1状态 关闭提示:软件暂时关闭,优惠券可使用状态 是否更新:0状态 软件地址:http://www.ba...

  • 三权分立

    打标记 开启安全 关闭安全 查看安全状态 查看SE角色及分配 查看各个用户的权限(需要安装setools-cons...

  • iOS蓝牙状态监测封装

    最近项目中需要监测蓝牙状态,所以本文只是简单的封装了蓝牙的开启关闭等. 封装类.h 封装类.m 食用方法 (´・ω...

  • android 通知栏开启

    需求 : 用户在未开启通知栏提醒时 , 提示用户去开启 . (有些手机默认是关闭了系统通知栏的)(可写个弹窗,用来...

  • 应用内跳转系统设置相关界面方法总结 - iOS

    在 iOS 开发中,经常会遇到有跳转至系统设置相关界面的需求,例如提示用户开启蓝牙或者 WiFi 等功能提示操作,...

  • 蓝牙的坑

    一、iOS11蓝牙打开后获取到的蓝牙状态是蓝牙关闭(CBCentralManagerStatePoweredOff...

网友评论

      本文标题:蓝牙关闭状态的提示及指导用户开启

      本文链接:https://www.haomeiwen.com/subject/pjklattx.html