蓝牙中央管理器初始化详解

2024-06-05 18:20

本文主要是介绍蓝牙中央管理器初始化详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

        • 蓝牙中央管理器初始化详解
          • 1、接口解释
          • 2、Options解释
            • 1、CBCentralManagerOptionShowPowerAlertKey
            • 2、CBCentralManagerOptionRestoreIdentifierKey
            • 3、CBCentralManagerOptionDeviceAccessForMedia

蓝牙中央管理器初始化详解
1、接口解释
/*!*  @method initWithDelegate:queue:options:**  @param delegate The delegate that will receive central role events.*  @param queue    The dispatch queue on which the events will be dispatched.*  @param options  An optional dictionary specifying options for the manager.**  @discussion     The initialization call. The events of the central role will be dispatched on the provided queue.*                  If <i>nil</i>, the main queue will be used.**    @seealso        CBCentralManagerOptionShowPowerAlertKey*    @seealso        CBCentralManagerOptionRestoreIdentifierKey**/
- (instancetype)initWithDelegate:(nullable id<CBCentralManagerDelegate>)delegatequeue:(nullable dispatch_queue_t)queueoptions:(nullable NSDictionary<NSString *, id> *)options NS_AVAILABLE(10_9, 7_0) NS_DESIGNATED_INITIALIZER;

delegate:CBCentralManager的回调代理

queue:CBCentralManager代理操作的所在队列,即delegate执行的所在队列。

options:其他选项,参考如下

2、Options解释
1、CBCentralManagerOptionShowPowerAlertKey
/*!*  **@const**  CBCentralManagerOptionShowPowerAlertKey**  **@discussion** An NSNumber (Boolean) indicating that the system should, if Bluetooth is powered off when <code>CBCentralManager</code> is instantiated, display* a warning dialog to the user.**  **@see** initWithDelegate:queue:options:**/

一个bool值,当蓝牙权限关闭的时候,如果CBCentralManager被初始化了,系统就是弹框提示用户蓝牙权限未开启

2、CBCentralManagerOptionRestoreIdentifierKey
/*!*  **@const**  CBCentralManagerOptionRestoreIdentifierKey**  **@discussion** An NSString containing a unique identifier (UID) for the <code>CBCentralManager</code> that is being instantiated. This UID is used* by the system to identify a specific <code>CBCentralManager</code> instance for restoration and, therefore, must remain the same for* subsequent application executions in order for the manager to be restored.**  **@see** initWithDelegate:queue:options:*  **@seealso** centralManager:willRestoreState:**/

一个string,当应用程序使用CBCentralManager与蓝牙设备进行通信时,如果设备支持(iOS 13及以上系统),可以在应用程序重启或系统重启后自动恢复与蓝牙设备的连接状态

3、CBCentralManagerOptionDeviceAccessForMedia
/*!*  **@const**  CBCentralManagerOptionDeviceAccessForMedia**  **@discussion** A Boolean representing the CBCentralManager init purpose is for DeviceAccess for media only. This will limit the functionality of this*  manager and only allow media device access without prompting the user for Bluetooth generic TCC.**  **@see** initWithDelegate:queue:options:**/

CBCentralManagerOptionDeviceAccessForMedia 是一个在iOS中用于蓝牙相关操作的选项,它用于请求访问设备的蓝牙硬件以及媒体输入和输出设备。

在iOS 13及更高版本中,当你使用CBCentralManager来管理蓝牙连接时,可以在初始化CBCentralManager时,通过options字典参数设置这个选项,以便让应用有权访问蓝牙硬件。

请注意,CBCentralManagerOptionDeviceAccessForMedia 是一个特定于iOS的选项,并不存在于其他操作系统上的Core Bluetooth框架中。因此,如果你在开发非iOS设备的应用,这个选项将不可用。

这篇关于蓝牙中央管理器初始化详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1033817

相关文章

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的