情形一:(蓝牙外设的名字不一样,那么蓝牙外设的名字就可以作为我们需要的唯一标识)
- (void)centralManager:(CBCentralManager*)centraldidDiscoverPeripheral:(CBPeripheral*)peripheraladvertisementData:(NSDictionary *)advertisementDataRSSI:(NSNumber*)RSSI;
方法中,我们就可以通过扫描到的蓝牙外设的名字(peripheral.name)来进行针对性的操作。
情形二:(蓝牙外设的名字都一样,但是不需要很严苛的知道连接的是那一台外部设备)
有一些公司的外部设备的名字都是一样的,但是进行连接或者其他操作的时候,没必要知道具体的是哪一台设备,那么就可以使用蓝牙外设的UUIDString(即peripheral.identifier.UUIDString)来作为唯一标识。但是,需要注意的一点:不同的中心设备(也可以说是不同的手机)对于同一台蓝牙设备,获取到的UUIDString是不一样的。
举例说明一下:对于同一台蓝牙设备,我的手机进行扫描,然后读取它的UUIDString,和你的手机进行扫描,获取到的UUIDString是不同的。
情形三:(蓝牙外设的名字都一样的情况下,不管任何手机获取到的唯一标识都是一样的或者需要确切知道是哪一台蓝牙设备)
针对这种情况,我们只能获取蓝牙设备的mac地址来作为唯一标识。但是,苹果公司也许是出于安全考虑,并没有对我们开放获取蓝牙设备的mac地址的接口(安卓开发是可以获取的)。那么我们只能自己通过某种手段来获取mac地址,有两种方法可以让我们获取到mac地址:
第一种:将mac地址放在蓝牙设备的广播数据之中,然后在广播的时候,将mac地址以广播的形式发送出来以供我们获取。
第二种:将mac地址写在某一个特征通道中,当我们连接蓝牙设备之后,通过某一个特征通道来获取mac地址。