現在、使用可能なデバイスをスキャンする CoreBluetooth アプリケーションを構築しています。問題は、「didDiscoverPeripheral」の AdvertismentData ディクショナリに CBAdvertisementDataLocalNameKey が含まれていないことです。CBAdvDataChannel と CBAdvDataIsConnectable のみが含まれています。これは、BLE デバイスを識別できないことを意味します。
興味深いのは、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]);
}