需求:

当我们使用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蓝牙开发 --- 唯一标识问题相关推荐

  1. iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]

    一.蓝牙基础知识 (一)常见简称 1.MFI  make for ipad ,iphone, itouch 专们为苹果设备制作的设备,开发使用ExternalAccessory 框架(认证流程貌似挺复 ...

  2. iOS 蓝牙开发 BabyBluetooth蓝牙库介绍

    BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容iOS和Mac OS X. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮 ...

  3. iOS 蓝牙开发资料记录

    一.蓝牙基础认识:   1.iOS蓝牙开发:   iOS蓝牙开发:蓝牙连接和数据读写   iOS蓝牙后台运行  iOS关于app连接已配对设备的问题(ancs协议的锅)          iOS蓝牙空 ...

  4. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?

    http://www.ithao123.cn/content-8688001.html iOS获取设备唯一标识的各种方法?IDFA.IDFV.UDID分别是什么含义? [摘要:1.UDID (Uniq ...

  5. ios 蓝牙开发总结

    随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,如今的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大降低.从iOS的发展史也不难看出 ...

  6. iOS蓝牙开发总结及Demo

    1. 概念 BLE ,buletouch low energy,蓝牙4.0设备因为低耗电,所以也叫做BLE: 中心设备 ,用于扫描周边蓝牙外设的设备,比如我们上面所说的中心者模式,此时我们的手机就是中 ...

  7. iOS蓝牙开发:蓝牙连接和数据读写

    当下蓝牙开发可谓是越来越火,不论是智能穿戴的兴起还是蓝牙家具,车联网蓝牙等等,很多同学也会接触到蓝牙的项目,我从事蓝牙开发也有一段时间了,经手了两个项目.废话不多说了,先向大家简单的介绍有关蓝牙开发的 ...

  8. iOS蓝牙开发数据实时传输

    随着iOS项目开发  很多app需要通过蓝牙与设备连接 蓝牙开发注意: 先定义中心设备和外围设备以及遵守蓝牙协议 @interface ViewController()<CBCentralMan ...

  9. iOS蓝牙开发:蓝牙的连接和数据的读写

    蓝牙开发说简单也简单,说不简单也有点难,开发人员在首次开发蓝牙前首先需要搞清楚蓝牙开发的概念,还要了解掌握蓝牙开发的一整套流程,这样才能快速上手开发蓝牙. 蓝牙开发分为两种模式:管理者模式和中心者模式 ...

最新文章

  1. ASP.NET ViewState 初探
  2. 记录一下PyQt5界面导入Python(绕开pyqt5-tools安装失败问题)
  3. 微信小程序轮播中的current_微信小程序 swiper轮播图的按钮切换
  4. 单元测试 | 如何在Mock时匹配匿名类型参数
  5. 使用React Native进行气泡动画
  6. 实现分页的通用存储过程
  7. zhilizhili-ui 2016始动 开始做个样例站吧 (一)
  8. https p12证书请求解决问题过程
  9. 在线教育逆流而上,网络直播课成教育新宠
  10. Windows 用户自动登录开启与关闭方法
  11. 高德地图标记文字修改样式_地图标注有哪些优势?如何进行地图标注?
  12. 新的一年:运动强身,读书明智,思考修心
  13. [PyQt] MCV模式学习-0
  14. python有哪些配置文件格式_Python配置文件:任何文件格式推荐? INI格式还是合适吗?似乎相当老派...
  15. pyspark中RDD基本操作
  16. 承香墨影的行业周报-0x0011
  17. 生成全局唯一ID的3个思路
  18. 网易云安装以及玄学打开问题
  19. 阿里巴巴 DevOps 转型后的运维平台建设
  20. CCD线阵相机彩色图像校正

热门文章

  1. 科大讯飞语音评测+录音
  2. 【图像检测】基于直方图实现火灾检测matlab代码
  3. Linux驱动学习笔记 -- 驱动总线实验
  4. Nagios bacula
  5. python technique
  6. 项目实战——旅行社导航页
  7. 键盘中按键对应的键码值
  8. mybatis配置log4j打印sql日志
  9. java毕业设计基于的企业办公管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
  10. 新手小白halcon安装与下载总结