3
我正在構建一個CoreBluetooth應用程序,我想掃描可用設備,問題是「didDiscoverPeripheral」中的AdvertismentData字典不包含CBAdvertisementDataLocalNameKey - 它只包含CBAdvDataChannel和CBAdvDataIsConnectable。這意味着我無法識別我的BLE設備。CoreBluetooth AdvertisementData不包含CBAdvertisementDataLocalNameKey?
有趣的是,Lightblue應用程序(iOS BLE掃描儀)能夠顯示名稱,因此可以訪問「CBAdvertisementDataLocalNameKey」。
有誰知道我在做什麼錯?我真的把我的頭髮撕掉了!
這裏是我的代碼基本示例:
-(void)scan
{
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[mCentralManager scanForPeripheralsWithServices:nil options:options];
}
- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
{
}
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
for(id key in advertisementData)
NSLog(@"key=%@ value=%@", key, [advertisementData objectForKey:key]);
}
是否在某些時候,'adverstisementData'包含密鑰?我的意思是,根據我的經驗,我可以逐個得到「整個廣告數據」,因此,如果確實有要使用的鍵,我會在列表中「保留」,只是忽略它,直到它恢復爲止。 – Larme