IOS获取蓝牙状态
IOS获取蓝牙状态
监听蓝牙状态
在Link Binaries With Libraries中添加CoreBluetooto.framework

创建CBCentralManager对象
为了避免每次都获取蓝牙状态都弹窗,配置一下options
将CBCentralManagerOptionShowPowerAlertKey设置为false
let options = [CBCentralManagerOptionShowPowerAlertKey: false]
bluetoothManager = CBCentralManager(delegate: self, queue: nil, options: options)
遵守CBCentralManagerDelegate,在代理方法centralManagerDidUpdateState中监听蓝牙改变的状态
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("蓝牙开启且可用")
case .unknown:
print("手机没有识别到蓝牙,请检查手机。")
case .resetting:
print("手机蓝牙已断开连接,重置中。")
case .unsupported:
print("手机不支持蓝牙功能,请更换手机。")
case .poweredOff:
print("手机蓝牙功能关闭,请前往设置打开蓝牙及控制中心打开蓝牙。")
case .unauthorized:
print("手机蓝牙功能没有权限,请前往设置。")
PLWToast("无蓝牙权限,请前往设置打开")
default: break
}
isBlueToothOn = central.state != .poweredOff && central.state != .unauthorized && central.state != .unsupported
NotificationCenter.default.post(name: deviceBluetoothNotification, object: isBlueToothOn, userInfo: nil)
}
监听到蓝牙状态改变发送通知,在其他需要用到蓝牙的地方添加NotificationCenter的Obsever即可
主动获取蓝牙状态
var isBlueToothOn: Bool {
get {
return bluetoothManager?.state != .poweredOff && bluetoothManager?.state != .unauthorized && bluetoothManager?.state != .unsupported
}
set {}
}
直接获取CBCentralManager的state,和上面监听代码中的state一样
IOS获取蓝牙状态的更多相关文章
- iOS 获取网络状态
在iOS开发者,获取网络状态比较常用 -(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplicat ...
- esp32使iOS 获取蓝牙外设的Mac地址
最近在做一个需要上下位机的项目,我负责的任务下位机,使用的主控芯片是esp32.这个项目中有一项是需要手机扫描二维码然后连接作为esp32的蓝牙.二维码中包含了mac地址信息,在手机扫描周围设备的时候 ...
- React Native之Fetch简单封装、获取网络状态
1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是 ...
- [React Native]获取网络状态
使用React Native,可以使用NetInfo API获取手机当前的各个网络状态. componentWillMount() { NetInfo.fetch().done((status)=&g ...
- iOS关于蓝牙连接的简单介绍与使用
下面是两台iPhone6连接同一台蓝牙设备的结果: **成功连接**** peripheral: <CBPeripheral: 0x1700f4500, identifier = 50084F6 ...
- iOS之蓝牙开发—CoreBluetooth详解
CoreBluetooth的API是基于BLE4.0的标准的.这个框架涵盖了BLE标准的所有细节.仅仅只有新的iOS设备和Mac是和BLE标准兼容.在CoreBluetooth框架中,有两个主要的角色 ...
- iOS获取设备唯一标识的8种方法
8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...
- C# 获取时间差状态
/// <summary> /// 根据时间获取时间状态 /// </summary> /// <param name="dt"></pa ...
- ios中蓝牙自动连接出现硬件提示框的问题
出现如图所示情况,这时候有两种方法可以处理,一种是让硬件部修改硬件配对,另一种是程序里面测试该提示框的对应特征值,不要调用该特征值就不会出现 //2.扫描到Characteristics,特征回调 - ...
- Best Practices for Performance_4.Optimizing Battery Life 获取充电状态、电池信息,"sticky"类型的广播
http://developer.android.com/training/monitoring-device-state/index.htmlhttp://developer.android.com ...
随机推荐
- huge 发在家长群的图片
- 1Before You Install Flask...Watch This! Flask Fridays #1
flask官网: https://flask.github.net.cn/ git官网: https://git-scm.com/ 建立文件: 建立虚拟环境.激活: source virt/Scrip ...
- CF708C Centroids [树形DP,换根DP]
Description 给定一棵树. 至多进行一次操作:删去一条边,连接一条新边,保证操作完后仍是树. 问每个点在进行操作后是否可以成为树的重心. Solution 性质\(1\):若一个点不是树的重 ...
- ARM SMMU原理与IOMMU技术(“VT-d” DMA、I/O虚拟化、内存虚拟化)
名词缩写 ASID:Address Space ID 地址空间标识符 CD:Context Descriptor: 上下文描述符: CTP:Context-table pointer 上下文表指针 E ...
- 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年6月刊
本文为大家整理了墨天轮数据社区2023年6月发布的优质技术文章/文档,主题涵盖Oracle.MySQL.PostgreSQL等数据库的安装配置.故障处理.性能优化等日常实践操作,以及常用脚本.注意事项 ...
- iOS Masonry使用小结
一.Masonry简介 Masonry是一个轻量级的布局框架,它拥有自己的描述语法(采用更优雅的链式语法封装)来自动布局,具有很好可读性且同时支持iOS和Max OS X等. 二.Masonry的基本 ...
- dotnet定义扩展方法
// 扩展方法 // 1.创建静态类静态方法 2. 在静态方法中参数中使用 this 关键字指定需要扩展的类 // 密封类 不能直接继承,通过扩展方法,拿到父类的属性和方法进行扩展补充
- filter 加 indexOf 方法去重数组
let arr = [1, 2, 3, 4, 3, 2, 3, 4, 6, 7, 6] let unique = (arr) => { console.log(arr) return arr.f ...
- ⼯作中有做过数据处理吗? tree 组件 根据 pid 寻找父节点
主要是在组件和后端返回的数据之间,或者组件产⽣的数据和需要提交给后端的数据之间,有可能会出 现结构对不上,这个时候可能会处理⼀下,举个例⼦,⽐如说我们常⽤的tree型组件要求必须是嵌套的 tree型数 ...
- Nuxt.js 应用中的 kit:compatibility 事件钩子详解
title: Nuxt.js 应用中的 kit:compatibility 事件钩子详解 date: 2024/10/11 updated: 2024/10/11 author: cmdragon e ...