В помощь мобильному разработчику

Google Awareness API для Android: запросы и реакция на сигналы

Александр Алексеев

Сервисы Google Play предлагают разработчикам множество невероятных API-интерфейсов для интеграции в приложения iOS и Android. В частности, разработчикам Android доступно несколько дополнительных API-интерфейсов, дающих ещё больше возможностей и интеграции с операционной системой Android при разработке приложений для этой платформы. Один из самых новых API-интерфейсов — Awareness объединяет в себе семь различных сигналов контекста и местоположения в один простой в использовании API, среди которых время (time), область (location), места (places), маяки (beacons), наушники (headphones), активность (activity) и даже погода (weather). Пакет NuGet для API-интерфейса Awareness запускается вместе с нашим релизом сервисов Google Play 9.6.1 (32.961.0) для Xamarin.

Awareness предлагает два различных способа для проникновения в суть этих сигналов — API-интерфейсы Fence и Snapshot. Интерфейс Fence позволяет реагировать на сигналы и изменения в пользовательской среде. Можно создавать несколько условий, которые должны быть выполнены, и когда это происходит, получать обратный вызов, с тем чтобы на них реагировать. А вот Snapshot API, о котором мы сейчас поговорим, предоставляет прямой доступ к сигналам от одного обычного асинхронного API. Помимо того что он является простым интерфейсом, Awareness API обеспечивает лучшие использование аккумулятора и памяти благодаря интеллектуальному кэшированию и перекрёстной оптимизации приложений.

 

Установите Awareness NuGet

Для того чтобы получить доступ к Awareness API в первую очередь нужно добавить сервисы Google Play — Awareness NuGet в приложение Xamarin.Android. На момент написания этой статьи актуальной версией является 32.961.0. Проще всего можно найти NuGet непосредственно введя имя пакета Xamarin.GooglePlayServices.Awareness. Дополнительные зависимые объекты сервисов Google Play: Places, Location, Base packages и необходимые Support Packages тоже появятся при добавлении NuGet.

 

Регистрация ключей API

Сервисы Google Play зачастую требуют уникального ключа API для каждого использующего их приложения. А эти ключи создаются и активизируются в Google API Developer Console. Сперва нужно создать новый проект:

После того как он будет создан, следует включить три различных API:

  • Awareness API
  • Google Places API для Android (для Places API)
  • Nearby Messages API (для Beacons API)

Вам нужно ввести название пакета приложения и SHA1 хранилища ключей, которое Вы используете для отладки и релиза проекта, когда приходит время размещать его в app store и регистрировать. Можете ознакомиться с нашим материалом по «получению ключа подписи отпечатком пальца в Android».

Просто создайте новые параметры доступа с помощью этих ключей.

 

Добавление ключей к Android Manifest

После того как зарегистрируйтесь, Вы получите уникальный ключ API, который следует добавить в файл Android Manifest. Этот же ключ API понадобится для каждого из тегов метаданных, которые мы добавим к узлу приложения, что будет выглядеть следующим образом:

 

Создание GoogleAPIClient

Так как регистрация всех ключей API выполнена, настало время для того, чтобы уже начать использовать Awareness API. Для работы с любым сервисом API от Google Play необходимо создать GoogleApiClient. Прежде всего, давайте привнесём несколько пространств имен:

 

Теперь в Activity мы можем создать и подключить GoogleApiClient:

 

Сигналы запроса

Теперь мы можем начать использовать API для запроса таких сигналов, как состояние наушников.

 

Прочие сигналы, за исключением наушников, например, местоположение и распознавание активности требуют дополнительных прав. Мы должны добавить два специальных разрешения в Android Manifest:

 

Для запроса разрешений и проверки их наличия мы можем использовать Permissions Plugin, который помогает абстрагировать функциональность в обычный вызов. Если нам необходимо запросить местоположение и погоду, то мы можем использовать Permissions Plugin вместе с Awareness API:

 

Мы даже можем пойти дальше и определить текущую активность пользователя, к примеру, бег или езду на велосипеде при помощи запроса Detected Activity:

 

Заключение

Awareness API является чрезвычайно мощным и в то же время очень эффективным в вопросе энергопотребления при запросах сигналов на устройстве. Вы можете скачать полный пример исходного кода с моей страницы на GitHub, и из него станет яснее весь процесс использования API-интерфейса Snapshot, кроме того, Вы можете лучше разобраться в особенностях Awareness API, ознакомившись с информацией на портале для разработчиков от Google.

Автор: James Montemagno
ИсточникОфициальный блог Xamarin

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Написать ответ