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 ...
随机推荐
- Python实现多维傅里叶变换
技术背景 在前面一篇文章中,我们介绍了一维离散傅里叶变换和快速傅里叶变换的基本原理和简单的代码实现.本文补充一个多维傅里叶变换的场景,以及简单的Python实现. 二维傅里叶变换 首先回顾一下上一篇文 ...
- 墨天轮专访星环科技刘熙:“向量热”背后的冷思考,Hippo如何打造“先发”优势?
导读: 深耕技术研发数十载,坚持自主可控发展路.星环科技一路砥砺前行.坚持创新为先,建设了全面的产品矩阵,并于2022年作为首个独立基础软件产品公司成功上市.星环科技在今年的向星力•未来技术大会上发布 ...
- C#查漏补缺----Exception处理实现,无脑抛异常不可取
前言 环境:.NET 8.0 系统:Windows11 参考资料:CLR via C#, .Net Core底层入门 https://andreabergia.com/blog/2023/05/err ...
- Fluent Operator v2.0 发布:Fluent Bit 新的部署方式——Fluent Bit Collector
2019 年 1 月 21 日,KubeSphere 社区为了满足以云原生的方式管理 Fluent Bit 的需求开发了 FluentBit Operator.此后产品不断迭代,在 2021 年 8 ...
- synchronized锁的内容
synchronized锁的内容 import java.util.concurrent.TimeUnit; class Test1 { public static void main(String[ ...
- AWS学习笔记-网络
[用语]网络组件解释:https://zhuanlan.zhihu.com/p/137963921 VPC之间建立连接. VPC对等连接(VPC Peering) 私有子网中的实例访问Internet ...
- Oracle 11.2 RAC 添加节点
软硬件环境:与上一篇文章一致: 集群中增加节点大致分为 4 个步骤: 1. 前期准备阶段:2. 新节点加入集群(安装 GI 软件):3. 新节点安装 DB 软件:4. 给新节点分配实例: 1.前期准备 ...
- 数据分析(matplotlib pyplot)
文章目录 1.导入pyplot 库 2.绘出直线图 3.绘出实心点 4.绘出折线图 5.绘制正余弦函数 Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API. P ...
- mysql 查询两个日期之间所有天数(查询近两个月所有日期)
本文转自博文:https://blog.csdn.net/qq_42795259/article/details/126722209 遇到一个需求需要查询近两个月所有日期,如下图: 首先实现解决问题如 ...
- UniswapV2Factory细节
UniswapV2Factory合约是Uniswap V2协议中的关键部分,负责管理和创建所有的流动性池(交易对).以下是对UniswapV2Factory合约中所有主要方法及其参数的详细讲解. 方法 ...