2016年1月20日水曜日

BLE Advertise の GAP(Data Type Value) の指定方法

  いろいろなコードを参考にしながらいろいろ試して、BLE Advertise はできるようになったのだが、GAP の Data Type Value (AD Type) がどうしても設定できない。
 
 参考にしたコードによって 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 はなし

0 件のコメント:

コメントを投稿