美文网首页
蓝牙开发-获取Mac地址

蓝牙开发-获取Mac地址

作者: 一誠 | 来源:发表于2018-09-12 23:58 被阅读86次

    苹果在原生的CoreBluetooth中,将设备的Mac进行了封装(通过外设的Mac地址和手机的Mac地址进行了加密计算),最后对外提供了一个UUID,在一台手机上,一般情况,UUID就可以作为这个外设的唯一标识了,但是如果换了一台手机的话,可能就会发生变化,所以如果需求是需要在多台手机上的话,UUID可能就不太实用了。

    蓝牙的Mac地址可以加到蓝牙的广播包里,但是这样的话对硬件来说负担很大而且芯片也不稳定,也可以将蓝牙的Mac地址写在蓝牙设备系统的sevrice 里 。我们的需求是在通过Mac地址连接蓝牙设备,所以必须在连接蓝牙之前获取蓝牙的Mac地址。
    通过广播包获取Mac地址

    - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
    

    在这个代理方法我们可以拿到一个advertisementData,这个字典类型的就是广播包,这里面会有一些设备的属性,比如设备的名字啊,服务等。但是只有kCBAdvDataManufacturerData这个key是可以放入信息的,硬件工程师可以将Mac地址写到这个字段里去。

    if ([advertisementData[@"kCBAdvDataManufacturerData"] containsObject:@"MAC"])
     {
    NSLog(@"广播字符串 %@ %@",peripheralName,advertisementData[@"kCBAdvDataManufacturerData"]);
    }
    
    IMG_2018.jpg

    相关文章

      网友评论

          本文标题:蓝牙开发-获取Mac地址

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