「Android」端末で「ビーコン」を受信

小さいエリアでの通信や端末同士の位置情報を利用したサービスに興味がある。
Androidの開発環境を用意したのでAndroid端末のBLEを利用した「ビーコン」について調べた。

BLEを利用した「ビーコン」は、Bluetooth機器のペアリング時使用していた、アドバタイジングパケットを利用した発信機なイメージ。
その信号をひろって「ビーコン」のIDや信号の強さなどの情報から位置情報サービスに利用するのだろうと思っている。

BLEを利用した「ビーコン」には、Appleの「iBeacon」とGoogleの「Eddystone」があるらしい。
今回は情報が多そうな「iBeacon」を対象とする。

1.テスト用のアプリのインストール

自分で書いたコードが正しく「iBeacon」の受発信を行えているかをテストするためアプリとして以下のものを使用させてもらった。

2.ビーコンライブラリの登録

サンプルコードが豊富なビーコンライブラリの「AltBeacon」を使用する。
ライブラリの登録は「プロジェクトの構造」画面で行う。

「Android Studio」を起動し、プロジェクト、「プロジェクトの構造」>「app」>「依存関係」タブの「+」ボタンを押下するとプロジェクトへライブラリの登録する画面が表示される。
「altbeacon」と入力して検索ボタンを押下すると「org.altbeacon:android-beacon-library」がヒットするので選択し登録する。

「プロジェクトの構造」
ライブラリの登録

build.gradleファイルのdependenciesに次の行が追加されていることを確認。

3.BLE関連のPermissionの追加

BLEデバイスにアクセスできるように「app/src/main/AndroidManifest.xml」に次のような設定を追記。

4.「Android」端末側の設定

Bluetoothにアプリケーションがアクセスできるようにするため「Android」端末側の設定が要るようだ。まず、Bluetoothを有効にする。

一度アプリケーションをデプロイした後に、
「設定」>「端末管理」>「アプリケーション」>[デプロイしたアプリケーション]をタップする。「アプリ情報」の「許可」をタップすると「位置情報」の許可設定ができるようになっているので有効にする。(※)

※この許可をしていないと下のようなメッセージが出力されBluetoothにアクセスできない。

5.ビーコン受信のJavaコード

6.実行

上記のコード実行しiOS版の「Beacon入門」から「ビーコンの発信」を行うと以下のようなログが出力された。
動作しているようだ。

次は発信(送信)を試そう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です