ちょっと話題の記事

[Android][iBeacon] Android Beacon Library パラっと解説 その1 [準備]

2015.03.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Android x iBeacon

こんにちは。こむろです。札幌は今日は猛烈に雪が降っていました。割と落下速度の早い雪だったので気温は高いような気がします。

先週末の円山公園の様子。
IMG_20150309_004503

今回はAndroidです。Android + iBeaconという、闇の組み合わせに対峙するための武器として使えそうなAndroid Beacon Libraryというライブラリの紹介を"炒飯を強火で炒めるがごとく"「パラっと」します。

Android Beacon Library

Android Beacon Libraryとは、BLEを利用して動作するビーコンの信号を、Android上でiOSと同じような機能で検出することができるようにするためのライブラリです。
もろもろ準備は必要でで手間がかかりますが、使いやすくiBeaconもそれなりに簡単に検知できるのですが、何故か日本語の情報があまりなかったため、こちらにまとめておきます。

AltBeaconとは

AltBeacon_-_The_Open_Proximity_Beacon

まずは、そもそもAltBeaconとはなんぞや?というところから紹介します。AltBeaconの公式ページには以下のように記述されています。

The AltBeacon specification defines the format of the advertisement message that Bluetooth Low Energy proximity beacons broadcast.

「iBeaconと同じようにBLEの技術を使い、決められたプロトコルでビーコンの信号を発するもの」とあります。iBeaconと似たような特性を持っているため、同じ用途で使うならばこちらを選択することもできる、Alternative Beaconといった所でしょうか。
プロジェクトのトップにもあるようにオープンな仕様になっているようです。

これから紹介するライブラリはAltBeacon用に開発されているものですが、少し設定してあげるだけでiBeaconを受診することができるようになります。開発者が必要な部分のみ実装すれば良いように、スッキリとした分かりやすいIFで構成されています。
少し実用には問題があるのですが、そちらも追々記述します。

ライブラリを導入する

まずはAltBeacon Android Beacon Libraryを導入しましょう。自分の環境は以下のとおりです。

  • OS: Mac OS X 10.9.5
  • IDE: Android Studio 0.8.9

こちらのQuick Start に従って設定を行っていきます。

ライブラリの導入

適当なプロジェクトを作成します。出来上がったプロジェクトの app/build.gradleを編集します。

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.altbeacon:android-beacon-library:2+@aar'
}

iBeaconを検出するため、当然ながらBluetoothの機能は必要になります。Permissionを許可しておきます。
app/src/main/AndroidManifest.xml に以下を追加します。

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>

Quick Start には記述されてありませんでしたが、BLEを利用するはずなので bluetooth_le が有効であることを要求する設定も追記しておきます。

これで準備は完了です。
ここまでのソースは以下のリンク先になります。「beacon_001」ブランチをチェックアウトしてください。次回は領域監視を行います。

github - BlogSampleAndroidBeaconLibrary

参考