CBPeripheralManager クラス リファレンス 日本語訳
これはCBPeripheralManagerクラスのリファレンスを、CoreBluetoothを理解するために必要最小限の部分を日本語訳したものです。
CBPeripheralManagerクラスは、peripheral roleへの入り口です。 コマンドは、その状態がCBPeripheralManagerStatePoweredOn のときにだけ、発行されるべきです。 2つ以上のCBPeripheralManagerを同時に使うことはサポートされませんし、そうした場合には不定の振る舞いをするでしょう。
CBperipheralManagerクラスは、iOS6以降で利用できます。
プロパティ
@property(assign, nonatomic) id delegate;
Peripheralイベントを受信するデリゲート。
@property(readonly) CBPeripheralManagerState state;
Peripheralの現在の状態。初期値はCBPeripheralManagerStateUnknown。 値更新は、required なデリゲートのメソッド peripheralManagerDidUpdateState: に提供されます。
@property(readonly) BOOL isAdvertising;
Peripheralが、今データをアドバタイズしているか、いなかを示します。
インスタンス・メソッド
- (id)initWithDelegate:(id)delegate queue:(dispatch_queue_t)queue;
イニシャライザです。Peripheral roleのイベントは、指定されたキューで処理されます。 もしもキューがnilならば、メインキューが使われるでしょう。
- delegate
- Peripheral roleイベントを受け取るデリゲート。
- queue
- イベントを処理するdispatch queue。
- (void)startAdvertising:(NSDictionary *)advertisementData;
アドバタイズメントを開始します。サポートされているアドバタイズメント・データ・タイプは、CBAdvertisementDataLocalNameKey と CBAdvertisementDataServiceUUIDsKey です。
アプリケーションがフォアグランドのときは、 初期のアドバタイズメント・データを、28バイトまで、 サポートされているアドバタイズメント・データ・タイプの任意の組み合わせに使えます。 もしこの領域を使い切ると、scan responseの10バイトを追加の領域として、ローカルネームに対してのみ、使えます。
このサイズは、新しいデータタイプそれぞれに必要な2バイトのヘッダ情報を含まないことに、注意してください。
割り当て領域に収まらなかったサービスUUIDsは、特別な"オーバフロー"領域に追加されます。したがって、それらのサービスUUIDは、 iOSデバイスが、それらを明示的にスキャンしたときにだけ、発見されます。
アプリケーションがバックグラウンドにあるときは、ローカルネームは使われず、すべてのサービスUUIDsは“オーバフロー”エリアに置かれます。
see peripheralManagerDidStartAdvertising:error:
seealso CBAdvertisementData.h
- (void)stopAdvertising;
アドバタイズを停止します。
- (void)setDesiredConnectionLatency:(CBPeripheralManagerConnectionLatency)latency forCentral:(CBCentral *)central;
すでにあるセントラルとの接続の、コネクション・レイテンシを希望する値に設定します。 コネクション・レイテンシの変更は保証されず、したがって結果として得られる遅延は、指定したものとは違うかもしれません。 もしも望むレイテンシが設定されないなら、接続が確立した時にセントラルが選んだレイテンシが使われます。 一般に、レイテンシを変更する必要はありません。
see CBPeripheralManagerConnectionLatency
- (void)addService:(CBMutableService *)service;
サービスと、それに関連付けられたcharacteristic(s)をローカルデータベースに公開します。もしもサービスがincluded serviceを含むなら、 まずincluded serviceが最初に公開されねばなりません。
- service
- GATTサービス
see peripheralManager:didAddService:error:
- (void)removeService:(CBMutableService *)service;
ローカルデータベースから、公開されたサービスを削除します。もしもサービスがincluded serviceを含むならば、まず最初にincluded serviceが削除されねばなりません。
- (void)removeAllServices;
ローカルデータベースから、すべての公開されているサービスを削除します。
- (void)respondToRequest:(CBATTRequest *)request withResult:(CBATTError)result;
peripheralManager:didReceiveReadRequest: もしくは peripheralManager:didReceiveWriteRequests: のデリゲートのメソッドで受信したリクエストに応答するのに使います。
- request
- セントラルから受信されたオリジナルのリクエスト
- result
- request を満たそうとした結果
see peripheralManager:didReceiveReadRequest:
see peripheralManager:didReceiveWriteRequests:
- (BOOL)updateValue:(NSData *)value forCharacteristic:(CBMutableCharacteristic *)characteristic onSubscribedCentrals:(NSArray *)centrals;
1つもしくはそれ以上のセントラルに、更新されたcharacteristicの値を、notificationもしくはindicationで送信します。
返り値は、アップデートが送信されたならばYES、送信キューが満杯ならばNO。 もしNOが返ってきたら、スペースが有効になった時に1度、デリゲートの peripheralManagerIsReadyToUpdateSubscribers: メソッドが呼ばれる。したがって、もしも望むならば、アップデートを再送信する。
- value
- notification/indicationで送信される値
- characteristic
- 値が変化したcharacteristic。
- centrals
- アップデートを受け取るCBCentralオブジェクトのリスト。characteristic を購読していないセントラルは無視されることに注意する。もしもnilならば、characteristicが購読するセントラルすべてが更新される。 see peripheralManager:central:didSubscribeToCharacteristic:
see peripheralManager:central:didUnsubscribeFromCharacteristic:
see peripheralManagerIsReadyToUpdateSubscribers:
列挙型
CBPeripheralManagerState
CBperipheralManagerの現在の状態を表します。
- CBPeripheralManagerStateUnknown
- 不明な状態。すぐに更新されます。
- CBPeripheralManagerStateResetting
- システムサービス都の接続が、一時的に失われました。すぐにアップデートされます。
- CBPeripheralManagerStateUnsupported
- そのプラットフォームはBluetooth Low Energy Peripheral/Server roleをサポートしません。
- CBPeripheralManagerStateUnauthorized
- アプリケーションはBluetooth Low Energy Peripheral/Server roleを使う権限がありません。
- CBPeripheralManagerStatePoweredOff
- Bluetoothは現在電源がオフです。
- CBPeripheralManagerStatePoweredOn
- Bluetoothは現在電源がオンで、利用できます。
CBPeripheralManagerConnectionLatency
Peripheral-central接続の遅延時間は、メッセージがどれほどの頻度で交換できるか、を制御します。
- CBPeripheralManagerConnectionLatencyLow
- バッテリーの持ち時間よりも、素早い通信を優先します。
- CBPeripheralManagerConnectionLatencyMedium
- 通信の頻度とバッテリーの持ち時間とのバランスを取ります。
- CBPeripheralManagerConnectionLatencyHigh
- 素早い通信よりも、バッテリーの持ち時間を伸ばすことを優先します。