Целью тестирования является возможность интеграции технологии Eddystone от Google с уникальным сервисом по взаимодействию с культурными объектами «Городской Маяк» (в разработке для Android, iOS, WEB).
С помощью технологии Eddystone будет происходит замещение совершенно неудобной концепции QR-кодов для получения интересующей информации. Стоит отметить, что был проведен небольшой опрос – 227 человек (85% опрошенных проживают в Нижегородской области и Нижнем Новгороде), где только 5% респондентов постоянно пользуются QR-кодами, a 30% вообще не знают что это. Акцент в сервисе ставится на использование Physical Web.
Статья автора Кирилла Рудакова, в рамках конкурса «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 сервисам:
Для подписки на маячки и получения сообщений с них в фоновом режиме (код с developers.google.com):
Для поиска 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 благоприятно и позитивно повлияет на дальнейшее развитие «Городского Маяка».
С помощью технологии Eddystone будет происходит замещение совершенно неудобной концепции QR-кодов для получения интересующей информации. Стоит отметить, что был проведен небольшой опрос – 227 человек (85% опрошенных проживают в Нижегородской области и Нижнем Новгороде), где только 5% респондентов постоянно пользуются QR-кодами, a 30% вообще не знают что это. Акцент в сервисе ставится на использование Physical Web.
Статья автора Кирилла Рудакова, в рамках конкурса «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 for background 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 благоприятно и позитивно повлияет на дальнейшее развитие «Городского Маяка».
Поделиться с друзьями
Комментарии (3)
igor_suhorukov
10.11.2016 15:40+8Вместо бесплатных и работающих и в офлайн QR кодов предлагается технология, требующая спец. оборудования и подключение к интернет?
Arahnid
11.11.2016 12:43Т.е. всех Android-пользователей с версией ОС меньше 4.4 вы просто
обламываетеигнорируете?
DrPass
Из статьи немного непонятно, как планируется с помощью этой технологии заменять QR-коды. Будут выпущены специальные чернила для печати маячков на принтере, или плагины для их рисования в графических редакторах? :)