Android 5.0 LollipopでiBeacon互換Advertise
Tweet
せっかくN9買ったしMaterial Designをお試しがてらiBeaconをAdvしてみるかと組んでみました。
AdvertiseData.Builder#addManufacturerData(int, byte[])がちゃんと動作するようになったらしく、
4C 00 02 15...の先頭(?)2byteを削って02 15から始まる23bytesのバイト配列を用意した後、
builder.addManufacturerData(0x004c, manufacturerData);
したら1A FF 4C 00 02 15...みたいなAdvが出るようになり、
iOS8のiPhone5では一応iBeaconとして認識されることが分かりました。
(iPhone側が最近あまりiBeaconなコードを組んでないのでちょっと自信がない)
set addManufacturerData params 0x004c and byte[23], it seems good.
https://github.com/youten/aBeacon/commit/e4769a6f910d4b26a120bcf855b4ad1e203f8b65
先頭のAD Flags 02 01 16が出てないのが気になりますが、気が向いたらまた追いかけることにします。
↓
【2014.11.12 追記】
@youten_redo Previewの時にあった AdvertiseSettings.Builder setType() って、正式版で setConnectable() に置き換わった? 同義だとすると setConnectable(true) をためしてほすぃ。
— ぷろぐらみんぐだけが恋人 (@adakoda) 2014, 11月 11
setConnectable(true)したらFlags AD Typeの先頭3byteキター!
aBeacon - Android BLE Peripheral Advertiese sample as a iBeacon for Lollipop
https://github.com/youten/aBeacon
というわけで無事iBeacon互換っぽいAdvを出力するに至りました。L Previewの適当お試しに完全に踊っちゃった感あります。一緒に踊らさせてしまった@adakodaさん、ごめんなさい&ありがとう。さすが俺らのウォーズマンは頼りになる。