AndroidでiBeaconを送信する方法

Androidでは現在iBeacon (というかPXPですね) を受信は可能なものの送信できませんが、4.4.3AOSPには送信APIのコードがマージされておりしかし隠されているので、それを有効化してビルドすれば使えるよ、と言う話。(まぁ待っていればそのうちAndroid自身のリリースで有効化されると思いますが)
2
Tadashi Okoshi @TadashiOkoshi

Androidは4.3以降BluetoothLEのサポートを入れてるんだけれど、4.3では”peripheral”モードになれないのでiBeaconでビーコンをアドバタイズする送信側にはなれない。

2014-07-24 05:07:53
Tadashi Okoshi @TadashiOkoshi

しかしperipheralモードになるためのコードはすでに実装されていて、4.4.3 AOSPにはマージされている。ただ @hide 属性がつけられているので一般アプリからは隠されておりそのままでは使用できない。

2014-07-24 05:09:21
Tadashi Okoshi @TadashiOkoshi

AOSP 4.4.3のソースを取ってきて、BluetoothAdapter.java (startAdvertising(), stopAdvertising()あたり) とBluetoothAdvScanData の@hideを除去して ビルドすればそれらAPIを使えるように。

2014-07-24 05:12:13
Tadashi Okoshi @TadashiOkoshi

ソース編集したらmake update-apiした上で、SDKとターゲットデバイス向けのROMをビルドすれば、開発できるようになる。

2014-07-24 05:13:12
Tadashi Okoshi @TadashiOkoshi

とかいう、学部生プロジェクトの裏側をちょっと書いてみたけれど、AndroidでiBeacon送受信しているひとはまだ世の中にそうはいないんじゃないかなw

2014-07-24 05:14:17
Tadashi Okoshi @TadashiOkoshi

参考(1): ここにほぼ全てのノウハウが書かれていたが今は削除されてしまった。 developer.radiusnetworks.com/2014/06/24/mak…

2014-07-24 05:15:18
Tadashi Okoshi @TadashiOkoshi

参考(2): bluetooth - Can an Android device act as an iBeacon? - Stack Overflow bit.ly/1nh2pmQ

2014-07-24 05:15:59
Tadashi Okoshi @TadashiOkoshi

参考(3): ios - What is the iBeacon Bluetooth Profile - Stack Overflow bit.ly/1qACDgx

2014-07-24 05:16:37