3

現在、使用可能なデバイスをスキャンする 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]);
}
4

2 に答える 2