zoukankan      html  css  js  c++  java
  • 【转】IOS 怎么获取外设的广播数据AdvData

    原文网址:http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/73443.aspx

    NSArray *keys = [advertisementData allKeys];
        NSData *dataAmb, *dataObj;
        for (int i = 0; i < [keys count]; ++i) {
            id key = [keys objectAtIndex: i];
            NSString *keyName = (NSString *) key;
            NSObject *value = [advertisementData objectForKey: key];
            if ([value isKindOfClass: [NSArray class]]) {
                printf("   key: %s ", [keyName cStringUsingEncoding: NSUTF8StringEncoding]);
                NSArray *values = (NSArray *) value;
                for (int j = 0; j < [values count]; ++j) {
                    if ([[values objectAtIndex: j] isKindOfClass: [CBUUID class]]) {
                        CBUUID *uuid = [values objectAtIndex: j];
                        NSData *data = uuid.data;
                        if (j == 0) {
                            dataObj = uuid.data;
                        } else {
                            dataAmb = uuid.data;
                        }
                        printf("      uuid(%d):", j);
                        for (int j = 0; j < data.length; ++j)
                            printf(" %02X", ((UInt8 *) data.bytes)[j]);
                        printf(" ");
                    } else {
                        const char *valueString = [[value description] cStringUsingEncoding: NSUTF8StringEncoding];
                        printf("      value(%d): %s ", j, valueString);
                    }
                }
            } else {
                const char *valueString = [[value description] cStringUsingEncoding: NSUTF8StringEncoding];
                printf("   key: %s, value: %s ", [keyName cStringUsingEncoding: NSUTF8StringEncoding], valueString);
            }
        }

     

    谢谢,可是得出来得结果是

       key: kCBAdvDataIsConnectable, value: 1

       key: kCBAdvDataLocalName, value: SimpleBLEPeripheral

       key: kCBAdvDataServiceUUIDs

          uuid(0): FF F0

       key: kCBAdvDataTxPowerLevel, value: 0

    我想获取得广播数据还是读取不到。。。。

     

    对于iOS设备,我是通过kCBAdvDataServiceUUIDs得到广播数据的。

     

    Li Zongwu:

    我也感觉广播数据应该是在advertisementData中的,可以里面就是没有kCBAdvDataServiceUUIDs这个键值。纠结。。。。不知道是不是CC2540那里面的程序不对,你的

    -(void)centralManagerDidUpdateState:(CBCentralManager *)central

    {....}这里面怎么定义的啊。。。

     

    用我之前提供的代码,就可以得到kCBAdvDataServiceUUIDs这个key值,这个key值对应的就是广播里地所谓的数据了。

     
  • 相关阅读:
    编译原理实验之SLR1文法分析
    机器学习中的特征选择filter
    按部就班的吴恩达机器学习网课用于讨论(4)
    Linux客户端网口输入转串口输出
    按部就班的吴恩达机器学习网课用于讨论(3)
    关于网络手动搭建的一点补充说明
    按部就班的吴恩达机器学习网课用于讨论(2)
    按部就班的吴恩达机器学习网课用于讨论(1)
    java学习与应用(5.3)--Spring
    java学习与应用(5.2)--Spring Boot 预告篇
  • 原文地址:https://www.cnblogs.com/wi100sh/p/5530910.html
Copyright © 2011-2022 走看看