2016-04-19 12 views
0

私はCoreBluetoothを使用して、BlueGiga BLE113モジュールを使用して開発したいくつかの同一のBluetoothスケールに接続しています。私のアプリは、各スケールのCBPeripheral.Identifier.UUIDStringのローカルコピーをその物理スケールに関するいくつかの関連するデータと一緒に保存します。例えば。 「スケールA」と「スケールB」CoreBluetoothペリフェラルIDの変更

私の問題は、デバイスのUUIDStringが頻繁に変更されることです。私はデバイスに対して何日間も開発することができますし、ある日UUIDは異なります。スケールがリセットされていない、アプリケーションが再起動されておらず、Bluetoothが電話で再起動されていない。

各ブルートゥース周辺機器(スケール)を確実に識別する方法が必要で、生産中に各デバイスに識別子をハードコードする必要はありません。

長期的に周辺機器を識別する優れた方法はありますか?

+0

ペアにしない限り、変更されます。 – Larme

+0

[CoreBluetoothの可能な複製:ユニークなUUIDのライフタイムは何ですか](http://stackoverflow.com/questions/17575949/corebluetooth-what-is-the-lifetime-of-unique-uuids) – Larme

答えて

3

残念ながら、私はあなたがiOSの周辺UUIDの変更を回避するとは思わない。あなたはBLEサービスを変更する必要が制御によって

/スケール上の特徴は、あなたがカスタム識別子を置く特性が含まれている追加のサービスを宣伝することができます。

iOSの上であなたはそのためにスキャン可能性があり特性値を読み取ってスケールを識別します。 この方法では、OSが周辺機器に割り当てるUUIDには依存しません。

希望すると便利です。

+0

ありがとう@ p2pkit、私これが事実かもしれないことを恐れていた。私はサービスを変更するコントロールを持っています。私は独自の識別子を持つ特性を追加し、プロダクションで独自のものにします。 – Michael