【iOS】Bluetooth通信について
iOSでは、Bluetoothを利用した通信を行うためのフレームワークが
2種類用意されています。
・「Core Bluetooth」
・「Game Kit」
です。
今回は、これらのフレームワークがどのような場面で利用されスマートフォンをどのように便利に利用できるようにするか紹介していきたいと思います。
まずBluetoothとは・・・
デジタル機器用の近距離無線通信規格の1つである。
数mから数十m程度の距離の情報機器間で、電波を使い簡易な情報のやりとりを行うのに使用される
Bluetoothの最新規格は、2012年12月現在では、4.0(2009年12月17日リリース)が最新です。
Bluetooth4.0では、低消費電力モードに対応する規格である「Bluetooth Low Energy(Blootooth LE)」が採用されており、これは従来のBluetoothとの間に互換性はありません。
Bluetooth対応デバイスは現在下記の3つの呼称で分類されています。
■[1]Bluetooth Smart
Bluetooth LEによる低消費電力モードのみで通信を行うデバイスにあたります。
Bluetooth Smart Readyデバイスとの間でのみ通信が可能です。
■[2]Bluetooth Smart Ready
Bluetooth LEによる低消費電力モードで通信をする子機との通信に対応し、かつ従来のBluetooth機器との通信ができるデバイスにあたります。
■[3]Bluetooth
従来のBluetooth通信のみを行うデバイスにあたります。
iOSデバイスのBluetooth対応状況
規格 | デバイス |
---|---|
Bluetooth4.0(Bluetooth Smart Ready) | iPhone 4S 新しいiPad(第3世代) |
Bluetooth2.1+EDR | iPhone4 iPad2 iPod touch(第4世代) |
※EDRとは:容量の大きいデータを通信する際に最大通信速度が3Mbpsの通信に切り替えるEDR (Enhanced Data Rate)
プロファイル
Bluetoothはその特性上、様々なデバイスでの通信に使用されるため、機器の種類ごとに策定されたプロトコルがあり、これをプロファイル と呼び標準化しています。
通信しようとする機器同士が同じプロファイルを持っている場合に限り、そのプロファイルの機能を利用した通信を行うことができます。
iosに対応しているプロファイル一覧:http://support.apple.com/kb/HT3647?viewlocale=ja_JP
一般的なBluetoothプロファイル一覧(by wikipedia):http://ja.wikipedia.org/wiki/Bluetooth%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7
ちょっとブレイクで・・・
ここでは、Bluetooth smart を採用した機器のiPhoneと連携したデバイスをちょっと紹介します。
「Blue HR for iPhone」
【正規代理店品】Wahoo Fitness 心拍計 Blue HR for iPhone(Bluetooth SMART/Bluetooth 4.0対応)WAF-PH-000001
- 出版社/メーカー: Wahoo Fitness
- メディア: エレクトロニクス
- クリック: 6回
- この商品を含むブログを見る
■Bluetooth Watch
[カシオ]CASIO 腕時計 G-SHOCK ジー・ショック Bluetooth Low Energy対応 GB-6900AA-1JF メンズ
- 出版社/メーカー: CASIO(カシオ)
- 発売日: 2012/10/20
- メディア: 時計
- クリック: 2回
- この商品を含むブログ (1件) を見る
■体温計
・・・ios5のサンプルアプリとして提供されている
「Game Kit」を使ったBluetooth通信
「Gmae Kit」フレームワークは、iOSデバイス間のP2P通信を簡単に実現する方法を提供しています。
P2P通信はBluetooth以外にもWiFiによって行うことができます。
Game Kitでは、iOSデバイス以外との通信は行えません。
では、以下にGame Kitを利用した実装方法手順を紹介していきます
■手順
- 接続デバイスの探索
- 接続デバイスの発見と接続
- データの送信
- 接続の切断
といった手順になります。
1.接続デバイスの探索
GKPeerPickerControllerクラスを使用します。
GKPeerPickerControllerクラスは、iOSデバイス同士のBluetooth接続に必要な処理とUIを提供しています。
showメソッドをcallすると以下のような画面が表示され接続するデバイスを探します。
2.接続デバイスの発見と接続
接続可能デバイスがみつかると、以下の様な画面が表示されます。
デバイスを選択すると、選択されたデバイス側で接続を許可するかを選択する画面が表示されます
上記のAcceptを選択すると接続が完了し、
GKPeerPickerControllerDelegateの
peerPickerController:didConnectPeer:toSession:がcallされます
3.データ送信
4.接続の切断
Game Kitを利用したiPhoneのアプリ
また、次回はCore Bluetoothによる通信手順とサンプルを紹介したいと思います。