Noveo блог - робота з beacon'амі в android

про Beacon

Beacon - це невеликий маячок, який транслює за допомогою Bluetooth Low Energy (Bluetooth LE, BLE) пакет зі своїм унікальним ідентифікатором (UUID, Major, Minor) і значеннями (RSSI сила сигналу); за допомогою цього пакету можна визначити відстань від пристрою одержувача до маяка.

Noveo блог - робота з beacon'амі в android

Для роботи з бікона існує кілька протоколів - iBeacon, AltBeacon, Eddystone. Відрізняються вони параметрами, які дозволено передавати при мовленні. **
**

Зазвичай бікона використовуються для мікронавігаціі в приміщеннях, де GPS не здатне забезпечити достатню точність. Можливість зчитувати дані в певному місці відкриває широкі можливості для розробників: крім точного позиціонування можна, наприклад, створити сервіс доповненої реальності і показувати підказки, прив'язані до місцевості.

Bluetooth LE на Android

Платформа Android підтримує роботу з Bluetooth LE, починаючи з версії 4.4 KitKat (API Level 19). Уже в Android 5.0 Lollipop (API Level 21) робота з Bluetooth LE зазнала значних змін. Якщо ви збираєтеся розробляти додаток з використанням біконів - вам необхідно підтримувати обидва варіанти.

Для роботи з будь-якою версією вам буде потрібно BluetoothAdapter, отримати його можна так:

Приклад пошуку для Android 4.4:

Приклад пошуку для Android 5.0:

Як видно з прикладів, Android 4.4 дозволяє сканувати Bluetooth LE пристрою, але керувати цим процесом не так легко. До того ж інтенсивність сканування можна налаштувати, а це загрожує посиленим енергоспоживанням. Використовуючи можливості Android 5.0, ви можете налаштувати такі параметри, як:

  • Період сканування перед поверненням даних.
  • Фільтри, наприклад по UUID.
  • Режим сканування. Доступні 3 варіанти:
    1. Low Latency - часте сканування,
    2. Low Power - енергозберігаюче сканування,
    3. Balanced - середнє між двома попередніми.
  • Крім того, сканер вміє повертати згруповані дані.

Крім того, сканер вміє повертати згруповані дані.

Noveo блог - робота з beacon'амі в android

Складнощі з Android 6.0

Здавалося б, все добре. Але з виходом Android 6.0 з'являються додаткові вимоги. Найбільше зміна - це Runtime Permissions. Дозволи в Android діляться на звичайні і небезпечні. Користувач може відключати небезпечні дозволу в налаштуваннях, а додатки повинні запитувати і перевіряти доступ в тих місцях, де він потрібен.

Трохи про дозволи в Android:

До звичайних дозволами належить більшість дозволів, наприклад доступ до Wi-Fi або Bluetooth. Небезпечних дозволів трохи, до них відносяться камера, контакти, місце розташування, мікрофон і т.д. Начебто все повинно працювати, адже для сканування біконів досить дозволів BLUETOOTH і BLUETOOTH_ADMIN - але виявляється, що немає. Для сканування у фоновому режимі, наприклад з сервісу, необхідні ще й дозволу ACCESS_FINE_LOCATION або ACCESS_COARSE_LOCATION. а вони відносяться до групи небезпечних, і їх необхідно перевіряти перед кожним скануванням.

Так Так! Доступ до місця розташування пристрою! До того ж служби визначення місцезнаходження повинні бути включені як мінімум в режимі енергозбереження, використання тільки GPS для біконів не підійде. Режим високої точності використовує обидва вищевказаних джерела, а тому також допустимо.

висновок

Одних дозволів і сканування недостатньо для написання якісного додатки, що працює з бікона. Вам також варто стежити за включенням і вимиканням Bluetooth, зупиняючи або перезапуску при цьому сканування. Незайвим буде і запускати сканер в різних режимах для фонової і активної роботи - щоб берегти заряд пристрою. Всі ці зусилля окупляться хорошими відгуками задоволених користувачів. А їх кількість, до речі, неухильно зростає - бікона непомітно завойовують світ, стираючи межі між офф- і онлайном, і можна з упевненістю говорити що за бікона якщо не все майбутнє, то як мінімум частина його. І вона вже стає справжнім!

Схожі статті