zoukankan      html  css  js  c++  java
  • iOS 蓝牙获取MAC地址

    援引:http://www.jianshu.com/p/1d6a8fc8134f

    iOS要获取蓝牙设备的MAC地址有两种:一是硬件工程师开通的服务特征下有MAC的信息,我们就从通道中获取;二是硬件工程师在扫描中设备信息中放置MAC信息,我们从有RSSI的函数中获取

    1.形如你所在其他网站上看到的在某写板子模块上的服务如:"A180"的,其下均有获取到MAC的特征。此处我们略过,因为其他地方说的很清楚了,援引处也有。需要硬件配和加入服务特征。

    2.就是在有RSSI的函数中获取。

    首先先让硬件工程师在板子模块上写入mac 的信息。

    - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
    - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *, id> *)advertisementData RSSI:(NSNumber *)RSSI
    {
        //获取mac
        NSLog(@"%@ ",peripheral);
        NSLog(@"%@ ",peripheral.name);
        NSLog(@"%@ ",peripheral.identifier.UUIDString);
        NSData *data = [advertisementData objectForKey:@"kCBAdvDataManufacturerData"];
        NSString *aStr= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    //    NSString *mac = [NSStringTool convertToNSStringWithNSData:data];
        aStr = [aStr stringByReplacingOccurrencesOfString:@" " withString:@""];
        NSLog(@"aStr:%@",aStr);
        NSLog(@"advertisementData:%@",advertisementData);
        
        // 一个周边可能会被多次发现
        if (![_peripheralArr containsObject:peripheral]) {
            [_peripheralArr addObject:peripheral];
            if ([self.delegate respondsToSelector:@selector(bleManagerUpdateDeviceList)]) {
                [self.delegate bleManagerUpdateDeviceList];
                
                
            }
        }
    }

    可以看到有一个 advertisementData ,这个字典类型的就是广播包,这里面会有一些设备的属性,比如设备的名字啊,服务啊等,但是都是被苹果限制了的,所以并不是你硬件工程师想广播什么都可以的。
    这个字典里有一个:只有这个key是可以放入信息的,所以叫硬件工程师将Mac地址写到这个字段里去,这样你就可以在发现设备的过程中得到Mac地址了~!

    key:kCBAdvDataManufacturerData

  • 相关阅读:
    CodeForces Gym 100935G Board Game DFS
    CodeForces 493D Vasya and Chess 简单博弈
    CodeForces Gym 100935D Enormous Carpet 快速幂取模
    CodeForces Gym 100935E Pairs
    CodeForces Gym 100935C OCR (水
    CodeForces Gym 100935B Weird Cryptography
    HDU-敌兵布阵
    HDU-Minimum Inversion Number(最小逆序数)
    七月馒头
    非常可乐
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/6513893.html
Copyright © 2011-2022 走看看