Блог на Noveo - Работа с Beacons в Android

Beacons са една от най-обещаващите технологии днес. Само в търговията на дребно се прогнозира, че те ще имат трицифрени темпове на растеж поне през останалата част от десетилетието - и това е само едно от многото възможни приложения за тях.

Какво е Beacon?

Маяк е малък маяк, който излъчва пакет с помощта на Bluetooth Low Energy (Bluetooth LE, BLE) със своя уникален идентификатор (UUID, Major, Minor) и стойности (RSSI сила на сигнала); с помощта на този пакет можете да определите разстоянието от приемащото устройство до маяка.

noveo

Има няколко протокола за работа с маяци - iBeacon, AltBeacon, Eddystone. Те се различават по параметрите, които са разрешени за предаване по време на излъчване.

Обикновено маяците се използват за микронавигация на закрито, където GPS не е в състояние да осигури достатъчна точност. Възможността за четене на данни в конкретно местоположение отваря страхотни възможности за разработчиците: в допълнение към точното позициониране, можете например да създадете услуга за разширена реалност и да показвате съвети, свързани с местоположението.

Най-очевидната употреба на маяците е търговията. Beacons могат да излъчват информация за продукти и промоции в магазина, менюта и отделни ястия в ресторант ... Потенциалът на beacons обаче не се ограничава до това. Технологията вече е оценена от организаторите на културни събития – с помощта на BLE beacons е лесно да добавите интерактивно съдържание към музейна експозиция, научна конференция или музикален фестивал. Beacons могат да ви помогнат да изберете най-удобното място на стадиона, да намерите правилния изход на летището и дори да ориентирате незрящите, например в метрото (тестови проект на лондонското метро). Изглежда, че възможностите на маяците са ограничени само от въображението на разработчиците. Което между другототова се дължи на факта, че цената на самите устройства е сравнително ниска и продължава да намалява, докато енергийните им запаси, напротив, растат.

Един от нашите постоянни партньори сред първите на европейския пазар осъзна всички предимства на тази технология и ни предложи да реализираме своя дългосрочен проект за мобилни маяци. Благодарение на това сътрудничество натрупахме много опит с тази технология и сега с право можем да се считаме за експерти в нея. Нашият старши разработчик Александър споделя някои от тайните на използването на маяци в Android.

Bluetooth LE на Android

Платформата Android поддържа Bluetooth LE от версия 4.4 KitKat (API ниво 19). Още в Android 5.0 Lollipop (API Level 21) работата с Bluetooth LE претърпя значителни промени. Ако ще разработите приложение с помощта на маяци, трябва да поддържате и двете опции.

Android 4.4 ви позволява да сканирате Bluetooth LE устройства, но управлението на този процес не е толкова лесно. Освен това интензитетът на сканиране не може да се регулира и това е изпълнено с повишена консумация на енергия. Използвайки възможностите на Android 5.0, можете да персонализирате настройки като:

  • Период на сканиране преди връщане на данните.
  • Филтри, например по UUID.
  • Режим сканиране. Налични са 3 опции:
  • Ниска латентност - често сканиране,
  • Ниска мощност - енергоспестяващо сканиране,
  • Балансиран - средното между двете предходни.
  • Освен това скенерът може да връща групирани данни.
  • блог

    Трудности с Android 6.0

    Изглежда, че всичко е наред. Но с пускането на Android 6.0 се появяват допълнителни изисквания. Най-голямата промяна са разрешенията за изпълнение. Разрешенията в Android са разделени наобикновени и опасни. Потребителят може да деактивира опасните разрешения в настройките иприложенията трябва да поискат и потвърдят достъпа, където е необходим.

    Малко за разрешенията в Android:

    Общите разрешения включват повечето разрешения, като например достъп до Wi-Fi или Bluetooth. Има няколко опасни разрешения, те включват камера, контакти, местоположение, микрофон и др. Изглежда, че всичко трябва да работи, защото разрешенията за BLUETOOTH и BLUETOOTH_ADMIN са достатъчни за сканиране на маяци - но се оказва, че не е така. За сканиране във фонов режим, например от услуга, също са необходими разрешенията ACCESS_FINE_LOCATION или ACCESS_COARSE_LOCATION, които спадат към опасната група и трябва да се проверяват преди всяко сканиране.

    Да да! Достъп до местоположението на устройството! Освен това услугите за местоположение трябва да бъдат включени поне в режим на пестене на енергия, използването само на GPS за маяци няма да работи. Режимът с висока точност използва и двата горепосочени източника и следователно също е валиден.

    Заключение

    Само разрешенията и сканирането не са достатъчни, за да напишете качествено приложение, което работи с маяци. Трябва също така да следите включването и изключването на Bluetooth, спирането или рестартирането на сканирането, докато го правите. Също така ще бъде полезно да стартирате скенера в различни режими за фонова и активна работа - за да спестите енергия на устройството. Всички тези усилия ще се изплатят с добри отзиви от доволни потребители. И техният брой, между другото, непрекъснато нараства: маяците тихо завладяват света и можем да кажем с увереност, че маяците, ако не цялото бъдеще, то поне част от него. И става истинско!