AniBeacon devices are required to support the following RESTful API:

POST /v2/android.bluetooth.BluetoothAdapter/startLeAdvertising

  • Starts sending BLE advertising packets
  • Input: { “interval”: number, “data”: hex-string }
    • interval: advertising frequency in milliseconds
    • data: see data packet format below

POST /v2/android.bluetooth.BluetoothAdapter/stopLeAdvertising

  • Stops sending BLE advertising packets

Data packet format

To send an iOS-compatible AniBeacon packet, send the following string in the data input field:

“02 [01] 1A : 1A [FF] 4C 00 _ 02 15 _ 22 A6 D7 55 8C A6 4A 82 A7 24 2C C5 48 00 00 04 _ 30 39 _ D4 31 _ D1”

All parts other than hex digits are for readability and will be skipped by the API. An explanation for the above code:

“02 01 1A 1A FF”: standard BLE advertising packet header

“4C 00”: Company identifier (Apple = hex 004C)

“02 15”: advertisement indicator

“22 A6 D7 55 8C A6 4A 82 A7 24 2C C5 48 00 00 04”: UUID

“30 39”: Major

“D4 31”: Minor

“D1”: 1-meter RSSI power

By matching the UUID codes with those of the advertiser, one can easily enable an AniBeacon media player to trigger response from existing beacon-compatible mobile apps when branded contents are played. Major and minor codes can be used to indicate the specific screen that the mobile app is close to. Location-based interaction can then be facilitated accordingly.

Similarly, data packets can be configured for Google’s Eddystone-UID and Eddystone-URL specs.