Технології Eddystone замінюють QR-коди

Метою тестування є можливість інтеграції технології Eddystone від Google з унікальним сервісом по взаємодії з культурними об'єктами «Міський Маяк» (в розробці для Android, iOS, WEB).

За допомогою технології Eddystone відбувається заміщення зовсім незручною концепції QR-кодів для отримання потрібної інформації. Варто зазначити, що було проведено невелике опитування – 227 осіб (85% опитаних проживають в Нижньогородській області та Нижньому Новгороді), де тільки 5% респондентів постійно користуються QR-кодами, a 30% взагалі не знають що це. Акцент в сервісі ставиться на використання Physical Web.


Стаття автора Кирила Рудакова, в рамках конкурсу <a href=«special.habrahabr.ru/google/lab>Device Lab від Google».

Однак і в WEB-додатку у користувача є можливість встановити оригінальне додаток для Android або iOS, яке має більший спектр можливостей, і більш того, зараз мало мобільних браузерів працюють з Eddystone-URL, а зайве додаток для виявлення нових типів пакетів, типу Physical Web App, ніхто не стане додатково встановлювати. Тому потреба в мобільних додатках під платформи Android і iOS очевидна.

Тестування
На тест були передані п'ять маячків iBKS105 від Accent Systems, які спочатку не підтримували Eddystone-EID. Eddystone-EID був анонсований Google 14 березня, з допомогою нього маячки транслюють ідентифікатор, який змінюється кожні кілька хвилин, підвищуючи безпеку і розширюючи сценарій їх використання. Для того, щоб маячки підтримували EID необхідно провести оновлення програмного забезпечення через офіційне додаток (для Android, iBKS Config Tool Beta v0_1, яке Accent Systems висилають за запитом, так як поки його немає в Google Play), яка виступає як інструмент для Eddystone GATT service. Про сценарії використання і переваги можна прочитати тут, а про специфікації Eddystone-EID тут.



Для роботи з нижченаведеними інтерфейсами програмування додатків і сервісами Google необхідно мати обліковий запис Google. Для роботи з маячками та їх інтеграції з додатком я використовував платформу google's beacon platform. Про налаштуванні і використанні Proximity Beacon API я прочитав тут і тут. Після створення проекту в консолі розробника Google необхідно активувати даний API і отримати OAuth 2.0 client ID і API KEY.

З допомогою APIs Explorer Протестував такі REST-запити, як proximitybeacon.beacons.register – для реєстрації раніше не зареєстрованих маячків, proximitybeacon.beacons.update – оновлення інформації про маячке, proximitybeacon.beacons.activate і proximitybeacon.beacons.deactivate – для активації і виведення з роботи маячка, proximitybeacon.beacons.attachments.create – для зв'язку додаткової інформації з заданим маяком, proximitybeacon.beacons.diagnostics.list – для відстеження статусу маячка. Всі запити можна знайти на тут.

Нижче представлений приклад реєстрації маячка – proximitybeacon.beacons.register і результат виконання:




Також, для реєстрації BLE маячків і створення невеликих вкладень до них з Google Beacon Registry я протестував мобільний додаток Beacon Tools Android і iOS. Про метаданих для реєстрації маяка можна дізнатися за ссылке.

Для отримання повідомлень у фоновому та активному режимі від маячків в самому додатку я використовував Nearby Messages API 9.0.2.

Після налаштування і конфігурування проекту (більш докладно можна прочитати в цієї статті і документації) відбувається підключення до Nearby Messages сервісів:

mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Nearby.MESSAGES_API)
.addConnectionCallbacks(this)
.enableAutoManage(this, this)
.addOnConnectionFailedListener(this)
.build();
Для отримання невеликих корисних даних з маячків:
private void publish(String message) {
mActiveMessage = new Message(message.getBytes());
Nearby.Messages.publish(mGoogleApiClient, mActiveMessage);
}
private void unpublish() {
if (mActiveMessage != null) {
Nearby.Messages.unpublish(mGoogleApiClient, mActiveMessage);
mActiveMessage = null;
}
}
private void subscribe() {
Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, options);
}
private void unsubscribe() {
Nearby.Messages.unsubscribe(mGoogleApiClient, mMessageListener);
}

@Override
public void onConnected(Bundle connectionHint) {
publish("Publish!");
subscribe();
}
@Override
public void onStop() {
unpublish();
unsubscribe();
super.onStop();
}

Для підписки на маячки і отримання повідомлень з них у фоновому режимі (код за developers.google.com):

private void backgroundSubscribe() {
Log.i(TAG, "Subscribing background for updates.");
SubscribeOptions options = new SubscribeOptions.Builder()
.setStrategy(Strategy.BLE_ONLY)
.build();
Nearby.Messages.subscribe(mGoogleApiClient, getPendingIntent(), options);
}
private PendingIntent getPendingIntent() {
return PendingIntent.getBroadcast(this, 0, new Intent(this, BeaconMessageReceiver.class),
PendingIntent.FLAG_UPDATE_CURRENT);
}
@Override
public void onReceive(Context context, Intent intent) {
Nearby.Messages.handleIntent(intent, new MessageListener() {
@Override
public void onFound(Message message) {
Log.i(TAG, "Found message via PendingIntent: " + message);
}
@Override
public void onLost(Message message) {
Log.i(TAG, "Lost message via PendingIntent: " + message);
}
});
}

Для пошуку Eddystone-URL я протестував додаток Physical Web для Android і iOS, а також функцію пошуку Physical Web об'єктів в Google Chrome для iOS.

Варто відзначити, що у програмі «Міський Маяк» використовується Firebase 9.0.2., і такими полями, як Status, Description, Properties, c допомогою Proximity Beacon API можна віддалено керувати, а також не тільки отримувати кадри Eddystone-TLM в google's beacon platform, але й агрегувати їх в окремому сервісі.

Висновок
У рамках спецпроекту, тестування продукту iBKS і технології Eddystone від Google програма «Міський Маяк» отримає інноваційні можливості. Необхідно зазначити, що за період тестування я зіткнувся з проблемою оновлення надаються маячків, на вирішення якої знадобилося велика частина часу. Надалі, я також планую реалізувати „зв'язку“ Firebase – google's beacon platform, описану вище. Досвід роботи з google's beacon platform і Nearby Messages API сприятливо і позитивно вплине на подальший розвиток «Міського Маяка».
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.