Android Bluetooth Low Energy (BLE) vol.1

こんにちは、あじゅ~くです。

さて、
本日から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 に続く

それでは。

azjuke

投稿者: azjuke

神奈川県横浜市在住 何かよくわからないブログに変身中! 色々な話題振りまいていきますよ。