美文网首页iOS开发杂货铺
iOS BLE缓存与mac地址问题

iOS BLE缓存与mac地址问题

作者: conowen | 来源:发表于2018-01-30 16:05 被阅读139次

1、缓存问题
iOS设备会对每台BLE设备进行缓存,记录设备名称,对应的服务与特征,但是如果进行DFU之后,修改了设备名称、或者服务特征,这样由于手机缓存了设备蓝牙信息,这样就无法第一时间获取DFU后的最新信息了。只能获取缓存的设备名称与服务特征。虽然可以系统设置里面手动清除蓝牙列表里面的缓存,但是这样还是不方便用户。

2、缓存问题解决方法
每次在DFU包,动态更新mac地址,这样对于手机来说,这个蓝牙外设就是新的蓝牙外设,这样就就不用从缓存里面获取了。因为iOS并无直接清除BLE缓存的接口,不像Android,可以通过反射机制达到清除缓存的目的。

3、mac地址问题
iOS中也同样无法直接获取蓝牙外设的mac地址,虽然iOS暴露了独一无二的设备UUID,但是无法满足需求,不同Android可以直接通过API获取,iOS获取mac地址比较麻烦,可以与蓝牙驱动工程师商议,在蓝牙的广播包里面放入mac地址信息。蓝牙的广播包,这里面会有一些设备的属性,比如设备的名字,服务等信息。但是这些信息不能任意修改,里面有一个可以自定义的key(kCBAdvDataManufacturerData)。

相关文章

  • iOS BLE缓存与mac地址问题

    1、缓存问题iOS设备会对每台BLE设备进行缓存,记录设备名称,对应的服务与特征,但是如果进行DFU之后,修改了设...

  • iOS CoreBluetooth

    CoreBluetooth 在iOS和Mac应用中,CoreBluetooth框架用来与BLE(低功耗蓝牙)设备通...

  • Android BLE蓝牙连接

    BLE蓝牙连接和经典蓝牙有所区别,BLE的整个连接流程为: 1,扫描设备,获取设备MAC地址 2,发起连接请求 3...

  • ARP协议

    ARP协议是解决局域网中IP地址与MAC地址的映射问题的协议,在局域网中,每个主机都有ARP缓存,当一个主机需要向...

  • iOS--CoreBluetooth简介

    关于CoreBluetooth CoreBluetooth框架提供了你的iOS或Mac的应用在和配备了BLE(低功...

  • iOS ble4.0获取外设MAC地址技巧

    因为公司提出新的需求,需要在不做连接的时候获取外设的MAC地址。后来跟公司的硬件工程师讨论后,得出下面一个方法可以...

  • 计算机网络|ARP表

    ARP表用于缓存设备的IP地址与MAC地址的对应关系,采用ARP表的好处是限制网络广播数量。 以主机A(192.1...

  • Android BLE 开发小记

    在Android5中引入BLE MAC地址时附带了一个增加隐私的旋转,每次调用BluetoothLeAdverti...

  • CoreBluetooth系列教程(三):Mac地址的获取及写入

    Mac地址的获取 iOS7之后,苹果不支持获取Mac地址,只能用UUID来标识设备。若想获得Mac地址,可以跟硬件...

  • iOS 蓝牙开发 Mac地址问题

    在蓝牙开发中,经常会遇到蓝牙Mac地址(物理地址-->唯一标记)链接的问题:对于安卓来说,可以通过Mac地址来链接...

网友评论

    本文标题:iOS BLE缓存与mac地址问题

    本文链接:https://www.haomeiwen.com/subject/xssczxtx.html