iOS蓝牙开发 --- 唯一标识问题
需求:
当我们使用CoreBluetooth系统框架进行蓝牙开发的时候,有时因为某种功能需求需要拿到特定的蓝牙设备进行特定的操作,这就需要我们拿到能够代表特定的蓝牙设备的唯一标识,通过唯一标识来确认是哪一台蓝牙设备
唯一标识的选择:
1、蓝牙设备的名字
2、蓝牙设备服务的UUID
3、继承于父类CBPeer的identifier的标识符属性
4、蓝牙的Mac地址
//蓝牙设备的名字
@property(retain, readonly, nullable) NSString *name;
//继承于父类CBPeer的identifier的标识符属性
@property(readonly, nonatomic) NSUUID *identifier NS_AVAILABLE(NA, 7_0);
获取唯一标识的位置:
在搜到外设的回调方法
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
中的advertisementData包含了 ①蓝牙设备的名字 (advertisementData[@"kCBAdvDataLocalName"])、②蓝牙设备服务的UUID(advertisementData[@"kCBAdvDataServiceUUIDs"][0])
在peripheral中:③(继承于父类CBPeer的identifier的标识符属性)包含了identifier属性,identifier中的UUIDString可以用来作为唯一标识(peripheral.identifier.UUIDString)(PS:不同的中心设备(也可以说是不同的手机)对于同一台蓝牙设备,获取到的UUIDString是不一样的。)
④苹果公司出于安全考虑,并没有对我们开放获取蓝牙设备的mac地址的接口(安卓开发是可以获取的),如果想要获取到mac地址,方法有两种:(PS:不同的中心设备(也可以说是不同的手机),同一台外设,获取到的Mac地址是完全一样的)
第一种:连接蓝牙设备之前:将mac地址放在蓝牙设备的广播数据之中,然后在广播的时候,将mac地址以广播的形式发送出来以供我们获取。(将mac地址写入外设的名字中(PS:我们的外设开发说 外设名字字段长度有限制,无法将mac地址放入Name中))
第二种:连接蓝牙设备之后:将mac地址写在某一个特征通道中,通过某一个特征通道来获取mac地址。
iOS蓝牙开发 --- 唯一标识问题相关推荐
- iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]
一.蓝牙基础知识 (一)常见简称 1.MFI make for ipad ,iphone, itouch 专们为苹果设备制作的设备,开发使用ExternalAccessory 框架(认证流程貌似挺复 ...
- iOS 蓝牙开发 BabyBluetooth蓝牙库介绍
BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容iOS和Mac OS X. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮 ...
- iOS 蓝牙开发资料记录
一.蓝牙基础认识: 1.iOS蓝牙开发: iOS蓝牙开发:蓝牙连接和数据读写 iOS蓝牙后台运行 iOS关于app连接已配对设备的问题(ancs协议的锅) iOS蓝牙空 ...
- iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
http://www.ithao123.cn/content-8688001.html iOS获取设备唯一标识的各种方法?IDFA.IDFV.UDID分别是什么含义? [摘要:1.UDID (Uniq ...
- ios 蓝牙开发总结
随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,如今的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大降低.从iOS的发展史也不难看出 ...
- iOS蓝牙开发总结及Demo
1. 概念 BLE ,buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE: 中心设备 ,用于扫描周边蓝牙外设的设备,比如我们上面所说的中心者模式,此时我们的手机就是中 ...
- iOS蓝牙开发:蓝牙连接和数据读写
当下蓝牙开发可谓是越来越火,不论是智能穿戴的兴起还是蓝牙家具,车联网蓝牙等等,很多同学也会接触到蓝牙的项目,我从事蓝牙开发也有一段时间了,经手了两个项目.废话不多说了,先向大家简单的介绍有关蓝牙开发的 ...
- iOS蓝牙开发数据实时传输
随着iOS项目开发 很多app需要通过蓝牙与设备连接 蓝牙开发注意: 先定义中心设备和外围设备以及遵守蓝牙协议 @interface ViewController()<CBCentralMan ...
- iOS蓝牙开发:蓝牙的连接和数据的读写
蓝牙开发说简单也简单,说不简单也有点难,开发人员在首次开发蓝牙前首先需要搞清楚蓝牙开发的概念,还要了解掌握蓝牙开发的一整套流程,这样才能快速上手开发蓝牙. 蓝牙开发分为两种模式:管理者模式和中心者模式 ...
最新文章
- ASP.NET ViewState 初探
- 记录一下PyQt5界面导入Python(绕开pyqt5-tools安装失败问题)
- 微信小程序轮播中的current_微信小程序 swiper轮播图的按钮切换
- 单元测试 | 如何在Mock时匹配匿名类型参数
- 使用React Native进行气泡动画
- 实现分页的通用存储过程
- zhilizhili-ui 2016始动 开始做个样例站吧 (一)
- https p12证书请求解决问题过程
- 在线教育逆流而上,网络直播课成教育新宠
- Windows 用户自动登录开启与关闭方法
- 高德地图标记文字修改样式_地图标注有哪些优势?如何进行地图标注?
- 新的一年:运动强身,读书明智,思考修心
- [PyQt] MCV模式学习-0
- python有哪些配置文件格式_Python配置文件:任何文件格式推荐? INI格式还是合适吗?似乎相当老派...
- pyspark中RDD基本操作
- 承香墨影的行业周报-0x0011
- 生成全局唯一ID的3个思路
- 网易云安装以及玄学打开问题
- 阿里巴巴 DevOps 转型后的运维平台建设
- CCD线阵相机彩色图像校正