Целью тестирования является возможность интеграции технологии 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 сервисам:
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 благоприятно и позитивно повлияет на дальнейшее развитие «Городского Маяка».
ссылка на оригинал статьи https://habrahabr.ru/post/310510/
Добавить комментарий