2015-11-17 6 views
5

CBPeripheralにサービスが更新されています。私の物理デバイスには広告サービスを更新するボタンがありますが、私のアプリケーションは依然として委任メソッドdidDiscoverServicesの古いサービスを読み込みます。iOS CBPeripheralサービスが更新されていません

didDiscoverPeripheralで周辺機器を検出したときに、サービスが最新であることがわかりました。

私は再びアプリケーションを実行すると、古いサービスはまだそこにあります!私のアプリに新しいサービスを発見させる唯一の方法は、ブルートゥースの電源を入れ直すことだ。私のアプリをアンインストール/再インストールするだけでは不十分です。

iOSは永久にサービスをキャッシュしますか?キャッシュをリセット/消去する方法はありますか?

答えて

1

はあなたがサービスを宣伝しているリモートペリフェラルのを発見するCBCentralManagerクラスのscanForPeripheralsWithServices:options:メソッドを呼び出すと、あなたが明示的に

を停止するよう指示するまで、あなたの中央装置は、広告デバイスをリッスンするために、その無線機を使用して、この を試してみましたRef:Best Practices for Interacting with a Remote Peripheral Device

+0

確かです。それは私が探しているサービスを渡すことであり、 'didDiscoverPeripheral'は' advertisingData [CBAdvertisementDataServiceUUIDsKey] 'のサービスを持っています。しかし、明示的に '[self.peripheral discoverServices:nil];を呼び出すと、そのサービスはもう存在しません。 – marcelosalloum

+0

これは試していませんが、私は[self.peripheral discoverServices:nil]と思っています。接続されたペリフェラルに対して更新されます。発見されたペリフェラルではありません.iはiosでそれをテストしていませんが、広告データの変更は広告パケットでしか見ることができません。私が間違っている場合私を修正してください。 – Neo

+1

ネオ、そのリンクは常に素晴らしいです、共有のためにありがとう。 – Hemang