去年の7月にリリースしたアプリが今年の3月に Play store から ban された。忙しくて放置していたのだが、年末に時間ができたので対応。
主に参考にしたのはこちら。
Firebase Hosting でサイトを公開するのに参考にしたのはこちら。
細かいほぼ一年半ぶりに Android 開発したこともとあってこまごまとしたところで躓いたが、半日ほどでリリース申請までこぎつけた。
2019年12月29日日曜日
2016年1月20日水曜日
BLE Advertise の GAP(Data Type Value) の指定方法
いろいろなコードを参考にしながらいろいろ試して、BLE Advertise はできるようになったのだが、GAP の Data Type Value (AD Type) がどうしても設定できない。
参考にしたコードによって Data Type Value (AD Type) の値は違うのだが、なぜ違っているのがわからなくてかなり調べた。調べた結果...
AdvertiseData.Builder のメソッドで付加される AD Structure
AdvertiseSettings.Builder のメソッドで付加される AD Structure
参考にしたコードによって Data Type Value (AD Type) の値は違うのだが、なぜ違っているのがわからなくてかなり調べた。調べた結果...
- Data Type Value (AD Type) は直接指定できない
- AdvertiseData.Builder,AdvertiseSettings.Builder のメソッドを呼ぶことで、Advertise に特定の AD Structure を追加できる
- Advertise に AD Structure を追加する方法はこれしかないらしい(API level 21:Android 5.0)
- 結局、Data Type Value (AD Type) を設定するのは、AdvertiseData.Builder,AdvertiseSettings.Builder のメソッドを選ぶこと
AdvertiseData.Builder のメソッドで付加される AD Structure
| Data Type Value | Data Type Name | Method |
|---|---|---|
| 0x03 | Complete List of 16-bit Service Class UUIDs | addServiceUuid(ParcelUuid serviceUuid) |
| 0x09 | Complete Local Name | setIncludeDeviceName(boolean includeDeviceName) |
| 0x0A | Tx Power Level | setIncludeTxPowerLevel(boolean includeTxPowerLevel) |
| 0x16 | Service Data - 16-bit UUID | addServiceData(ParcelUuid serviceDataUuid, byte[] serviceData) |
| 0xFF | Manufacturer Specific Data | addManufacturerData(int manufacturerId, byte[] manufacturerSpecificData) |
AdvertiseSettings.Builder のメソッドで付加される AD Structure
| Data Type Value | Data Type Name | Method | note |
|---|---|---|---|
| 0x01 | Flags | setConnectable(boolean connectable) | connectable:true の時だけ Flags:0x02(LE General Discoverable Mode)のAD Structureが入る connectable:false だと挿入される AD Structure はなし |
2015年12月14日月曜日
Nexus5 で、bluetooth LE の advertising を送出させる方法
経過:
思うところあって、いわゆる「Beacon」を使いたくなった。調べていくと、bluetooth LE の advertising という機能を使っているらしい。iOS は 7 以降で使え、Android は 4.3 以降で受信、5.0 以降で送信に対応とあった。
手元に Android 6.0 までアップデートした Nexus5 があったので、いろいろと試したのだが、どうもうまくいかない。
さらに調べていくと、Android L の途中までは動いていたようなのだが、2014/10 の中頃のバージョンから動かなくなってしまったらしい。
https://code.google.com/p/android-developer-preview/issues/detail?id=1570
で、google の中の人から「Nexus 4/5/7 は、チップセットの問題でサポートしないよ」との書き込みもあった。Nexus って Android の公式マシンなのに ><
https://code.google.com/p/android-developer-preview/issues/detail?id=1570#c52
ログを最後の方まで調べていくと、Nexus 5 + Android 5.1.1 で動かすためのパッチを発見!!
https://code.google.com/p/android-developer-preview/issues/detail?id=1570#c104
ということで、ダメ元で試してみたら、advertising の送出に成功した。
以下に、備忘録を兼ねて、メモを公開。
思うところあって、いわゆる「Beacon」を使いたくなった。調べていくと、bluetooth LE の advertising という機能を使っているらしい。iOS は 7 以降で使え、Android は 4.3 以降で受信、5.0 以降で送信に対応とあった。
手元に Android 6.0 までアップデートした Nexus5 があったので、いろいろと試したのだが、どうもうまくいかない。
さらに調べていくと、Android L の途中までは動いていたようなのだが、2014/10 の中頃のバージョンから動かなくなってしまったらしい。
https://code.google.com/p/android-developer-preview/issues/detail?id=1570
で、google の中の人から「Nexus 4/5/7 は、チップセットの問題でサポートしないよ」との書き込みもあった。Nexus って Android の公式マシンなのに ><
https://code.google.com/p/android-developer-preview/issues/detail?id=1570#c52
ログを最後の方まで調べていくと、Nexus 5 + Android 5.1.1 で動かすためのパッチを発見!!
https://code.google.com/p/android-developer-preview/issues/detail?id=1570#c104
ということで、ダメ元で試してみたら、advertising の送出に成功した。
以下に、備忘録を兼ねて、メモを公開。
登録:
投稿 (Atom)