4

私は、iOS デバイスが周辺機器であると同時に中央である必要があるアプリを作成しています。周辺機器を検出すると、その名前が実際の名前 (例: My iPhone) ではなく、モデル (例: iPhone) になることがあります。この場合、代わりに UUID が表示されます (通常(null)は、名前が実際の名前の場合です)。名前を正しく設定しましたstartAdvertising:が、これが発生すると、対応するキーによって実際の名前が指定されませんadvertisementData

実名が常に表示されるようにするにはどうすればよいですか?

これは私が名前を設定する方法です:

[self.peripheralManager startAdvertising:@{ CBAdvertisementDataLocalNameKey : [[UIDevice currentDevice] name], CBAdvertisementDataServiceUUIDsKey : @[SERVICE_UUID] }];
4

1 に答える 1

2

広告しているアプリが常にフォアグラウンドにない限り、広告データ (検索している特定のサービス以外) が表示されるという保証はありません。adv データは、アプリがバックグラウンドに移動するときにハッシュに入れられます。これは、corebluetooth を使用して複数のアプリを同時に実行する場合と、単一のアプリを実行する場合とで同じエクスペリエンスを実現するためです (iPhone 自体は限られた量のデータしかアドバタイズできないため)。ただし、デバイスがフォアグラウンドに表示されると、アプリがバックグラウンドに移動しても、ほとんどの adv データを表示できることに気付きました。ご不明な点がございましたら、お知らせください。

于 2013-08-01T17:59:48.123 に答える