8317


Bluetooth LEなデバイスのローカルネームを変更して、その後に再び  
CBCentralManager scanForPeripheralsWithServices:options: と  
CBCentralManagerDelegate
centralManager:didDiscoverPeripheral:advertisementData:RSSI:  
を使って検索すると、見つかったデバイスの名前が変更前のままになっています。

iOS 8で、変更後の名前を取得する方法はありますか?


CC BY-SA 3.0
2015-03-24T07:57:39.753
8316
2015-03-24T08:06:27.780
7283
question
ios objective-c bluetooth
名前が変えられたBluetoothデバイスを検出したい


デバイスが見つかったときに呼ばれるメソッド、

[code]

    - (void)centralManager:(CBCentralManager *)central
     didDiscoverPeripheral:(CBPeripheral *)peripheral
         advertisementData:(NSDictionary *)advertisementData
                      RSSI:(NSNumber *)RSSI
    
[/code]

の peripheral.name にはOSがキャッシュしている名前が入っているようですが、  
`advertisementData[@"kCBAdvDataLocalName"]`にはアドバタイズパケットの  
ローカルネームが入っているようです。

ちなみに、接続に成功するとperipheral.nameは変更後の名前に更新されるようです。


CC BY-SA 3.0
2015-03-24T08:06:27.780
8317
2015-03-24T08:06:27.780
7597
8316
answer