Back to tech

AndroidでBLE通信におけるCentralの役割をするサンプルアプリ

1 min read
Table of Contents

以前の記事で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
image

概要

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
image

動作

こんな感じで動きます

参考文献