こんにちは、あじゅ~くです。
さて、
本日からBLE特集です。
※2017/03/22 時点の記事
BLEの記事はこちら
vol.2
vol.3
vol.4
vol.5
vol.6
Bluetooth Legacy(遺産)関連のアプリは
散々作成したことがありましたが、
ついにBLEに手を出す時が来たようです。
むしろ遅いかもしれませんね。
遅ればせながら勉強しちゃいます。
まだ、
BLE触ったことないよ~
って人に有効な記事になれば。
説明を書くことで、
私自身も理解を深める!ってな
仕組みです。
と、いうわけで…
いってみたいと思います。
最初に
「Bluetooth Low Energy」
は
「Bluetooth4.0の規格」
です。
「ロウエナジー」ということで、
省電力仕様かと思われるかもしれません。
色々いいことばかり書いてあります。
が!?
実は、
レガシー(Bluetooth 4.0以前)も保持しているため、
そこまで省電力にならないような気がします。
最近BLEデバイスがすごく増えてきている気がします。
というわけで、
レガシーの機能が外れてこそ
本領発揮というところでしょうが、
これにはまだまだ時間がかかると思われます。
また、Androidの場合は
「Android 4.4 API 19」
から対応となっていますが、
機種によっては対応のチップを積んでいなかったりします。
さらに、
チップを積んでいたとしても
Android のバージョンにより
処理を変えなければならないという…
ライブラリが大変迷走している感じがしました。
今回説明するのは以下の構成です。
・BLEデバイス側(ペリフェラル:サーバ)
★アンドロイド側アプリ(セントラル:クライアント)
★の部分のつくりかたを書いていきます。
処理の流れ
Androidでの
大まかな処理の流れです。
メソッドも書いていこうと思います。
これで、
「どのメソッド使えばいいのよ?」
ってのがわかるかと思います。
では、
全体的な処理の流れを見てみましょう。
■デバイスの検索■
1.パーミッション確認
2.BLE利用可能確認
3.Bluetooth ON確認
4.デバイススキャン開始
5.対象デバイス発見
6.デバイススキャン停止
■デバイス接続■
7.GATT接続
8.デバイス接続通知受信
9.サービスディスカバリ開始
10.サービスディスカバリ通知受信
■デバイス通信■
11.GATT通信プロパティ
12.GATT通信実施
■デバイス切断■
13.GATT切断
という、流れになるでしょう。
10.で発見出来たサービスと
キャラクタリスティックを利用して、
相手デバイスとコマンドのやり取りが
出来るようになります。
この流れを理解すると、
プログラムが非常に書きやすくなります。
また、スキャンしないで、
ダイレクト接続する方法や、
注意点なんかも最後にまとめたいと思います。
…vol.2 に続く
それでは。