2016/02/15

[ble][android]Bluetooth Developer StudioでAndroidアプリ(Client)を作る

Open Live Writerが更新されてtagが入力しやすくなったので、記念にBLE記事を書いておこう。

 

今まで、Bluetooth Developer Studioの記事をいくつか書いたが、どれもnRF51822でPeripheralになるときの話だった。

しかし、Peripheralだけでは世の中が成り立たず、Centralが相手として存在してこそBLEの世界が成立するのだ。
だから、私もCentral側をBlueZで作ったりしたことがあった。

とはいえ、やはりBLEはスマホとお話しすることが多い。
だから、スマホのアプリを作った方が何かと便利がよい。
私はおしゃれなアプリを作ることもないので、とりあえず読み書きしてくれるだけでよい。

 

となると、Bluetooth Developer StudioでAndroidアプリを作る、というのが自然な流れだ。


Android Client Plugin 1.0 (2016/02/15)

これをダウンロードして、解凍して、Bluetooth Developer Studioのpluginsフォルダに放り込む。
うちのWindows7 64bitだと「C:\Program Files (x86)\Bluetooth SIG\Bluetooth Developer Studio\Plugins」だった。

名前の通り、これはClient側のプラグインだ。
今まで作ったのが、nRF51822がServerになるものだったのでちょうどよいのだが、AndroidをServerにする場合には、今回の記事は役に立たないだろう。
すまぬ。

 

注意点は1つ。
NAMESPACEだ。
nRF51822のときには使っていなかったけど、Androidアプリの場合にはこれがアプリのnamespaceと一致するようになっていた。
例えば、BDS側で「com.blogpost.hiro99ma.bdsclient01」という設定にしておくと、Android側でも「com.blogpost.hiro99ma.bdsclient01.MainActivity」のような配置になる。

あとからBDSのNAMESPACEを変更する方法がわからなかったので、私は直接BDSのプロジェクトファイルをテキストエディタで開いて、<namespace>のところだけ書き換えた。
とりあえず、そういうのでもよさそうだ。

そして、BDSで「TOOLS > GENERATE CODE」を選ぶ。
ダイアログが出るが、このときは「Server」になっているので、コンボボックスで「Client」を選ぶ。

image

そうすると、こんな感じでAndroid Client Pluginが出てくるので、選択して生成。


次は、Androidアプリの生成をする。

ここで必要なのは、プロジェクト設定ファイルだけのようだ。
なので、Android Studio(私はv1.5.1を使っている)を起動し、「Start a new Android Studio project」で新規生成し、Company Domainを「bdsclient01.hiro99ma.blogpost.com」として、あとはデフォルトで進めた。

  • Phone and Tablet : API23 : Android 6.0 (Marshmallow)
  • Blank Activity

なお、うちのAndroidはNexus5だ。

 

これで生成すると、画面などが開くが、Projectを閉じる。
開いておいてもいいのかもしれないけど、よくわからんので閉じた。

そして、BDSで生成したファイルに戻る。
この中に「copy_to_android_studio.bat」というファイルがある。
これをコマンドプロンプトで実行すればよいのだが、引数が必要。
その引数は、Android Studioで生成したプロジェクトのルートフォルダだ。
バッチファイルの中を見ると、コメントがあるから何となくわかると思う。

そして実行すると、ファイルがAndroid Studioのプロジェクトにコピーされる。
これで終わり。
あとは、またAndroid Studioに戻って、先ほどのプロジェクトを開く。
そうすると、layoutがどうのと警告が出るが、気にせずMakeしてやると、エラーも出ずにビルドでき、スマホに転送すると動いた。

image

 

「SCAN」を押すと、スキャンする。
対象のものだけ出てくるかは不明だが、そこまでフィルタリングはしないのではないか。

image

 

見つかったデバイス名をタップすると、こういう画面になった。
うむ、これは確かにBDSで作った内容だ。

image

 

CONNECTすれば、読み書きはこれでできそうだ。

まだ、CONNECTからDISCONNECTに戻す方法はわかってないのだけど、ベースがないよりもあった方がよいのだ。
おしゃれじゃない私は、これにボタンとかべたべた貼り付けて、動けばよかろうなのだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。