iPhone用のCoreBluetoothマネージャーアプリケーションで作業しています。以前に発見されたCBPeripheralに再接続できるように、(CoreDataの)ペリフェラルのUUIDを保存してから、CBCentralManagerのretrievePeripherals:を呼び出します。私のdidRetrievePeripherals:コールバックが呼び出され、私は接続することができます。CoreBluetoothでの再接続時のサービスと特性の検出を避ける
私が既に知っている周辺機器に再接続しているので、私はそのサービスと特性を発見することを避けたいと思います。だから私は最初に接続するときに、サービスと特性のUUIDを(周辺機器のUUIDと一緒にCoreDataに)保存します。
CBPeripheralのreadValueForCharacteristic:またはwriteValueForCharacteristic:がCBCharacteristicをパラメータとし、CBCharacteristicインスタンスを構築するAPIがないため、これらのUUIDを使用して特性を読み書きすることはできません。
これまでに知られていた周辺機器に再接続している間にサービスや特性を検出する方法はありますか?
こんにちは、CoreDataに既知のデバイスのUUIDを保存すると、実装するサービスと特性を含む各デバイスのデータ構造を保存できませんでしたか? –
デバイスのサービスと特性は、保存するUUIDによって識別されます。しかし、CoreDataにCBServiceとCBCharacteristicのインスタンスを保存することはできません。なぜなら、それらはNSManagedObjectから派生したものではないからです。少なくとも、私はどのようにできるのか分かりません。または私はあなたの質問を誤解しましたか? – mezulu
あなたの質問を理解しています。 discoverCharacteristics:forService:UUIDsを使用して... –