Статьи

Интеграция сервисов Google Play на Android

Интегрируя свои приложения Android с сервисами Google Play, вы можете получить доступ к таким сервисам Google, как Карты, Диск и Google+. Как только ваши приложения настроены на использование этих сервисов, доступ к ним, как правило, прост. Процесс установки требует нескольких шагов, но вам нужно выполнить их только один раз. В этом руководстве мы пройдем процесс интеграции сервисов Google Play с приложениями для Android.

В этом руководстве мы расскажем, что нужно сделать для интеграции приложений с Play Services в Eclipse и Android Studio. Вам потребуется доступ к консоли разработчика Google и утилите Keytool.

Как только вы настроите Play Services, сам процесс разработки будет зависеть от того, что вы хотите, чтобы ваши приложения делали. Процедура настройки, однако, остается прежней. Используя клиентскую библиотеку для доступа к сервисам платформы, ваши приложения получат автоматические обновления через Play Store.

Откройте вашу IDE и запустите Android SDK Manager. В Eclipse выберите « Окно»> « Android»> «Менеджер SDK» . В Android Studio нажмите кнопку панели инструментов SDK Manager . Прокрутите список, разверните папку Extras и выберите Google Play Services .

Android SDK Manager

Нажмите, чтобы установить пакет, и при появлении запроса примите лицензию. Если вы разрабатываете в Android Studio, вам также необходимо установить Google Repository .

Когда вы тестируете приложения, в которых вы используете API сервисов Google Play, в идеале вы должны запускать их на физических устройствах. Тем не менее, можно проверить в эмуляторе. Для этого вам нужно будет установить платформу API Google . Вы найдете это в каталоге для любого из уровней API 17 и выше.

API Google

Найдите платформу в вашем SDK Manager, установите ее и примите лицензию. Когда вы создаете AVD (виртуальное устройство Android) для тестирования приложения с помощью Google Play Services, выберите Google API в качестве цели.

Если вы разрабатываете в Eclipse, вам также необходимо скопировать библиотеку Play Services в ваше рабочее пространство. Сначала найдите его на своем компьютере, используя файловый менеджер. Вы найдете его в папке, в которую вы загрузили свой Android SDK, по адресу /extras/google/google_play_services/libproject/google-play-services_lib/ .

Скопируйте его в папку на вашем компьютере, которую вы используете для файлов разработки Android. После того, как вы скопировали библиотеку (вы должны скопировать ее, а не использовать версию в каталоге SDK), вернитесь в Eclipse. Выберите « Импорт» в меню « Файл» . Разверните папку Android , выберите « Существующий код Android в рабочую область» и нажмите « Далее» .

Библиотека импорта сервисов Play

Нажмите кнопку « Обзор» и перейдите в папку, в которую вы скопировали библиотеку Play Services. Выберите папку, которую вы скопировали, и нажмите « Готово», чтобы импортировать ее. Пакет появится в вашем Package Explorer.

Проект «Импорт игровых сервисов»

Теперь вы можете начать разработку с помощью ресурсов Play Services. Создайте новый проект Android в вашей IDE. Если у вас есть проект в рабочей области, вам нужно сослаться на ресурсы Play Services внутри него.

В Android Studio вам необходимо добавить правило сборки в файл build.gradle в модуле для проекта приложения. В разделе dependencies используйте следующий синтаксис:

1
compile ‘com.google.android.gms:play-services:4.1.32’

Убедитесь, что вы используете номер для самой последней версии Play Services. Вам нужно будет обновить это по мере обновления библиотеки. Сохраните файл и нажмите кнопку « Синхронизировать проект с файлами Gradle» .

В Eclipse выберите проект в проводнике пакетов, щелкните правой кнопкой мыши или выберите меню « Проект» и выберите « Свойства» . Выберите опцию Android слева и нажмите « Добавить» в разделе « Библиотека ».

Добавить библиотеку Play Services

Выберите библиотеку Google Play Services во всплывающем окне и нажмите « ОК», чтобы добавить ее. Нажмите Применить и ОК.

Библиотека сервисов Aply Play

Какой бы IDE вы не использовали, вам нужно будет добавить метаданные Play Services в ваш файл манифеста. Откройте файл манифеста проекта и добавьте элемент метаданных внутри элемента application :

1
2
<meta-data android:name=»com.google.android.gms.version»
   android:value=»@integer/google_play_services_version» />

Если вы используете Proguard, вам нужно будет создать исключение. Смотрите Руководство разработчика для получения более подробной информации. Для обзора API сервисов Google Play, посмотрите индекс пакетов .

Шаги обработки, которые необходимо выполнить в коде приложения, будут зависеть от того, какие функции вы хотите реализовать в Play Services. В следующих разделах изложены некоторые общие соображения и шаги.

Несмотря на то, что обновления передаются через Google Play Store, все же рекомендуется проверить, какую версию установило пользовательское устройство, прежде чем пытаться выполнить какую-либо обработку с помощью Сервисов Google Play.

См. Пример кода « Реализация клиента GCM» в Руководстве разработчика, чтобы узнать, как реализовать эти проверки в классе Activity . Вызов метода для поиска isGooglePlayServicesAvailable , который можно добавить к вспомогательному методу, как isGooglePlayServicesAvailable в следующем фрагменте:

1
2
3
4
private boolean checkPlayServices() {
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    //…
}

Вы можете вызвать метод в onCreate , прежде чем пытаться создать экземпляр GoogleAPIClient через который вы GoogleAPIClient доступ к ресурсам Play Services, и в onResume . Если на пользовательском устройстве не установлены необходимые ресурсы, ему будет предложено сделать это через Google Play Store.

После проверки уровня поддержки на пользовательском устройстве вы можете создать экземпляр класса GoogleAPIClient для вызова ресурсов Google Play. Следующий пример кода демонстрирует это и может быть включен в onCreate :

1
2
3
4
5
6
GoogleApiClient myClient = new GoogleApiClient.Builder(this)
.addApi(Plus.API)
.addScope(Plus.SCOPE_PLUS_PROFILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();

Это подготовит вашу заявку на доступ к сервисам Google+, как вы можете увидеть из Plus.API из Plus.API . addScope будет варьироваться в зависимости от того, что делает ваше приложение. Этот код также устанавливает обратные вызовы для процесса подключения. Ваш класс может реализовать следующие интерфейсы:

1
public class MainActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener

Затем класс может реализовать onConnected вызовы onConnected и onConnectionSuspended для обработки изменений в подключении к сервисам Play.

Для обработки сбоев при подключении к сервисам Play, например, в случаях, когда требуется вход пользователя, ваш класс может также реализовать onConnectionFailed для доступа к различным стандартным методам для устранения типичных ошибок. Некоторые из этих методов приведут к onActivityResult метода onActivityResult когда пользователь вернется в приложение, поэтому вы можете onActivityResult подключения к нему.

Как правило, ваш класс Activity должен подключаться к Play Services в onStart и отключаться в onStop через класс GoogleAPIClient как в следующем фрагменте:

1
myClient.connect();

Для доступа к определенным сервисам Play, включая Google+, необходимо зарегистрироваться. Для этого войдите в консоль API Google , нажмите « Создать проект» и введите имя. После создания проекта вы должны быть перенаправлены на проект в консоли.

Выберите пункт меню API , найдите Google+ API в списке и нажмите кнопку, чтобы включить его. Статус должен измениться на ВКЛ после принятия лицензии. Нажав на список API, вы получите представление о том, что вы можете с ним сделать.

Далее выберите « Учетные данные» и нажмите « Создать новый идентификатор клиента» . Выберите переключатель « Установленное приложение », выберите « Android» в качестве типа и введите данные своего приложения. Теперь вам нужно использовать ресурс Keytool для генерации сертификата SHA1.

Во время разработки вы можете использовать хранилище ключей отладки, введя следующий код в терминале:

1
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v

Вы должны будете убедиться, что это правильное местоположение для вашего хранилища ключей отладки, измените путь, если это не так. Когда вы выполните эту команду, вам будет предложено ввести пароль. Введите android для хранилища ключей отладки, и отпечаток должен быть выведен на терминал.

Скопируйте строку SHA1 и вставьте ее в поле Отпечаток сертификата подписи в консоли API. При необходимости включите глубокое связывание, а затем нажмите кнопку, чтобы создать идентификатор. Появится раздел под названием Client ID для приложения Android . На самом деле вам не нужно использовать идентификатор в коде приложения, но вы можете сохранить его для своих собственных записей.

Прежде чем вы сможете вызывать API-интерфейсы Play Services в своем коде приложения, вам необходимо добавить соответствующие разрешения в файл манифеста вашего проекта. Следующие примеры демонстрируют несколько типичных случаев использования, но вам нужно будет выбрать соответствующие разрешения для вашего собственного проекта:

1
2
3
<uses-permission android:name=»android.permission.INTERNET» />
<uses-permission android:name=»android.permission.GET_ACCOUNTS» />
<uses-permission android:name=»android.permission.USE_CREDENTIALS» />

Теперь ваш проект должен быть настроен на вызов API-интерфейсов Play Services, которые вам нужны. Вам нужно будет по-разному структурировать свои классы Activity зависимости от того, что делают ваши приложения. Посмотрите Руководство разработчика для получения дополнительной информации об этом.

Не забудьте ознакомиться со следующими руководствами, чтобы начать работу с некоторыми из доступных сервисов Play:

Если сервисы Google, к которым вы хотите получить доступ, не являются частью библиотеки сервисов Play, вы можете получить к ним доступ, используя Google REST API.


Есть много возможностей с Google Play Services в приложениях для Android. От игр до служб определения местоположения и картографирования ваши приложения могут использовать преимущества существующих функций платформы в контексте ваших собственных пользовательских интерфейсов и функций.

Процесс установки может показаться немного трудоемким, но после настройки вы можете сосредоточиться на предоставлении этих услуг своим пользователям.