在使用CoreBluetooth时,发现了一些小的细节问题
- 当蓝牙状态关闭时,初始化
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]];