わふうの人が書いてます。

iOSアプリケーション開発、BLEのファームウェアとハードウェア試作のフリーランスエンジニア。

CBCEntralManagerDelegateProtocol リファレンス 日本語訳

これは、Apple社のCBCentralManagerクラスドキュメント http://developer.apple.com/library/mac/#documentation/CoreBluetooth/Reference/CBCentralManagerDelegate_Protocol/translated_content/CBCentralManagerDelegate.html
から、CoreBluetooth開発の理解に必要最低限の情報を日本語に意訳したものです。

CBCentralManagerDelegate プロトコルは、CBCentralのデリゲートのプロトコルです。

CBCentralManagerDelegateは、-[centralManagerDidUpdateState:] のみがrequiredです。その他は optional です。

インスタンス・メソッド

- (void)centralManagerDidUpdateState:(CBCentralManager *)central;

セントラル・マネージャのステートが更新された時に、呼ばれます。

引数:

  • central
    • ステートが変化したセントラルマネージャ。

議論:

詳細は “state” プロパティを参照してください。

- (void)centralManager:(CBCentralManager )central didConnectPeripheral:(CBPeripheral )peripheral;

ペリフェラルとの接続が確立したときに、呼ばれます。

<<<<<<< HEAD

- (void)centralManager:(CBCentralManager )central didDisconnectPeripheral:(CBPeripheral )peripheral error:(NSError *)error;

ペリフェラルとの既存の接続が切断した時に、呼ばれます。

=======
centralManager:didDisconnectPeripheral:error:
Invoked whenever an existing connection with the peripheral is torn down.

- (void)centralManager:(CBCentralManager )central didDisconnectPeripheral:(CBPeripheral )peripheral error:(NSError *)error;

ペリフェラルとの既存の接続が切断した時に、呼ばれます。

centralManager:didDiscoverPeripheral:advertisementData:RSSI:
Invoked when the central discovers a peripheral while scanning.

- (void)centralManager:(CBCentralManager )central didDiscoverPeripheral:(CBPeripheral )peripheral advertisementData:(NSDictionary )advertisementData RSSI:(NSNumber )RSSI;

セントラルがスキャン中にペリフェラルを発見した時に、呼ばれます。

議論:

アドバタイズメント / スキャン・レスポンス・データは、”advertisementData”に収納され、CBAdvertisementData * キーを通して読み出すことができる。 (訳者注:BLEの規格ではアドバタイズメント・パケットには、デバイス名、デバイスが提供するサービスのUUID、メーカ独自の拡張データを収納することができます。最後の拡張データがiOSで読み取れるかは、未確認。)
この引数のperipheralは、このペリフェラルに対して、なにかのコマンドを実行する場合は、必ずリテインしなければならない。(訳者注:リテインしないと、ペリフェラルは開放されて、接続が切断します。)

centralManager:didFailToConnectPeripheral:error:
Invoked whenever the central manager fails to create a connection with the peripheral.

- (void)centralManager:(CBCentralManager )central didFailToConnectPeripheral:(CBPeripheral )peripheral error:(NSError *)error;

セントラル・マネージャがペリフェラルと接続を確立するのに失敗した時に、呼ばれます。

議論:

失敗した原因は”error”に格納されます。

centralManager:didRetrieveConnectedPeripherals:
Invoked when the central manager retrieves the list of peripherals currently connected to the system.

- (void)centralManager:(CBCentralManager )central didRetrieveConnectedPeripherals:(NSArray )peripherals;

セントラル・マネージャが、現在システムと接続しているペリフェラルの一覧を取得した時に、呼び出されます。

議論:

詳細は -[retrieveConnectedPeripherals] メソッドを参照してください。

centralManager:didRetrievePeripherals:
Invoked when the central manager retrieves the list of known peripherals.

- (void)centralManager:(CBCentralManager )central didRetrievePeripherals:(NSArray )peripherals;

セントラル・マネージャが、既知のペリフェラルの一覧を取得した時に、呼び出されます。

議論:

詳細は -[retrievePeripherals:] メソッドを参照してください。

See Also:

centralManager:didRetrievePeripheral:

定数(CBAdvertisementData.h)

CBAdvertisementData.h は -[centralManager:didDiscoverPeripheral:advertisementData:RSSI:] のadvertisementDataの辞書の鍵を定義しています。

CBAdvertisementDataServiceUUIDsKey;

CBServiceのUUIDを表す、1つもしくはそれ以上のCBUUIDのリスト。

const CBAdvertisementDataOverflowServiceUUIDsKey

iOS6以降
アドバタイズメントデータの”overflow”領域で見つけられたCBService UUIDを表す、1つもしくはそれ以上のCBUUIDのリスト。
この領域のUUIDは”ベストエフォート”であるため、常に正確とは限らない。

参照:

startAdvertising:

CBAdvertisementDataLocalNameKey

ペリフェラルのローカル名を表す、NSString。

CBAdvertisementDataTxPowerLevelKey

ペリフェラルの送信電力を表す、NSNumber。

CBAdvertisementDataManufacturerDataKey

ペリフェラルの製造者データを表す、NSDataオブジェクト。

CBAdvertisementDataServiceDataKey

サービス特有のアドバタイズメントデータを含む辞書。
その辞書の鍵は、CBService UUIDを表す、CBUUIDオブジェクト。値はNSDataオブジェクト。