在扫描BLE设备之后,我调用以下方法:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 并且接收如下广告数据:
{ kCBAdvDataManufacturerData = <ffff0215 cf6d4a0f ..... adf2f491 ... ... > }如何对数据进行解码并访问其信息?
发布于 2017-08-24 18:54:38
您似乎期望此广告数据包可以作为iBeacon进行解码,但事实并非如此。注释中列出的完整字节为:
ff ff 02 15 e8 4a 40 af 7b 8d e8 8d 4a 7b 40 af af e8 4a 40 40 af 7b 8d c302 15是苹果的公司代码,但接下来的两个字节的e8 4a与您将看到的iBeacon的模式不一致。因此,没有理由认为信标标识符被编码在该分组中。
这些数据意味着什么?如果没有更多关于什么软件或硬件正在传输这个数据包以及它的预期目的的信息,就不可能说出来。我们所能说的就是它是一个制造商的广告(类型为ff),并且报告自己是一台苹果设备。
如果你想弄清楚数据包的含义,你需要确定是哪个应用程序或硬件制造商发出的,并从该实体寻求文档。
发布于 2017-08-24 15:49:50
我的小代码片段:
-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
// NSLog(@"%@", central);
NSLog(@"%@", peripheral);
//NSLog(@"%@", advertisementData);
NSLog(@"%@", RSSI);
// more details:
NSString* name = [peripheral name]; // name in NULL in iOS 6
NSLog(@"%@", name);
for (NSString * key in advertisementData){
NSLog(@"%@", advertisementData[key]);
}
}https://stackoverflow.com/questions/45854508
复制相似问题