以前の記事でNodejsをBLE通信におけるCentralとして動かす記事をあげました
しかし一番BLE通信で役に立つのはモバイル端末との通信です
そこでAndroidでBLE通信におけるCentralとして動かすサンプルアプリを作りました
メモ程度に残しておきます
環境
- Android5.0以上の端末
- Android4.4以下でもBLE通信できますがプログラムが変わります(今回作ったのはサポートしていません)
読んでほしいもの
BLE通信をする上で必須となるのがBLE通信するまでのアルゴリズムです
クラシックBluetoothとは異なりIP検索して接続すれば通信できるものではありません
nodejsをCentralにしてBLE通信をする記事(ここ)にて軽く通信方法について触れましたが、ちゃんと書籍を読んだ上でやるのがベターだと思います
個人的には”Bluetooth Low Energyをはじめよう”という書籍がおすすめです
プログラム
Androidアプリですのですべてのプログラムを出すと膨大になります
そのためMainActivity.javaのみ掲載(Permissionの設定等々も行っているので結構長い)
他の部分はGithubに投げてあります
GitHub - Momijinn/SampleAndroidBleCentral: AndroidでBLE通信におけるCentralの役割をするアプリ
github.com
概要
BLE通信を行うにはBluetoothの許可の他に位置情報の許可も必要です
そのため、AndroidManifest.xmlに位置情報のパーミッションを追記しています
基本的にMainActivity.javaの接続したいデバイス名とServiceUUIDとCharacteristicUUIDを書き換えれば他のデバイスに対応できると思います
//PERIPHERAL_NAME
private static final String PERIPHERAL_NAME = "MyBlePeripheral";
//UUID
private static final String CUSTOM_SURVICE_UUID = "713d0000-503e-4c75-ba94-3148f18d941e";
private static final String CUSTOM_CHARACTERSTIC_UUID = "713d0001-503e-4c75-ba94-3148f18d941e";
デフォルトの状態で接続を確認したい場合は、BLEnano2を購入し以下のURLのGitHubに上がっているプログラムをBlenano2に書き込んでみてください
GitHub - Momijinn/mySimplePeriferalBlenano: Blenano2をble通信のPeripheralとして使うサンプルプログラム
github.com
動作
こんな感じで動きます
参考文献
- yamatakaの手帳 BLEでペリフェラルを操作する http://yamataka.hatenablog.com/entry/2015/02/24/210233
- Developer’s Blog 【連載】Bluetooth LE (5) Android 4.3 で Bluetooth LE 機器を使う http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-android.html
- Qiita 【Android】BLE通信ざっくりまとめ http://qiita.com/HideMatsu/items/6a6758eca86500881126
- GeekFactory AndroidでBLEデバイスから通知を受け取る http://int128.hatenablog.com/entry/2016/04/09/113006
- vaguely AndroidでBLEを使う(ver.4.4編) http://mslgt.hatenablog.com/entry/2014/10/31/001504
- BRILLIANTSERVICE TECHNICAL BLOG BluetoothSMARTデバイスをmbed で開発する(5) http://bril-tech.blogspot.jp/2015/05/bluetoothsmartmbed-5.html