вторник, 15 июля 2014 г.

Интегрирование Google Play Services в Android



Недавно я заинтересовался использованием геолокации в приложениях Android. В процессе поисков информации на эту тему выяснилось, что нужно использовать Google Play Services. Но для начала разработки необходимо подключить эту библиотеку в свой проект в IDE. После длительных поисков я нашёл на мой взгляд одну из самых полных и подробных инструкций по интеграции Google Play Services в Android.

Ниже приведён мой перевод данной статьи.


С помощью интеграции вашего Android приложения с Google Play Services Вы получаете доступ к таким сервисам Google, как Maps, Drive, and Google+. Один раз настроив ваши приложения доступ к этим сервисам и их использование становится обычным делом. Процесс установки требует всего несколько шагов, но Вам нужно позаботиться об этом всего один раз. В этом уроке мы пройдём процесс интеграции Google Play Services с Android приложениями.

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

После того, как Вы настроите Play Services процесс разработки будет определяться тем, что Вы хотите, что бы ваши приложения делали. Процедура установки остаётся той-же. При использовании client library для доступа к сервисам платформы ваши приложения только выиграют от автоматических обновлений через Play Store.
Откройте ваше IDE и запустите Android SDK Manager. В Eclipse выберите Window > Android > SDK Manager. В Android Studio нажмите кнопку SDK Managerна панели инструментов. Опуститесь вниз списка, раскройте папку Extras и выберите Google Play Services.
Android SDK Manager
Нажмите install the package и accept the license когда будет предложено это сделать. Если Вы разрабатываете в Android Studio, то Вам так-же нужно установить Google Repository.
Когда Вы тестируете свои приложения, в которых Вы используете Google Play Services APIs, то идеальным было бы запускать их на реальных устройствах. Тем не менее, возможно тестирование и в эмуляторе. Для этого Вам нужно установить Google APIs Platform. Вы найдёте это внутри директории для каждого API уровня 17 и выше.
Google APIs
Найдите платформу в вашем SDK Manager,установите её и примите условия лицензии. Когда создаёте AVD (Android Virtual Device) для тестирования Google Play Services, выберите Google APIs в качестве target.
Если Вы ведёте разработку в Eclipse, то Вам нужно будет скопировать Play Services library в ваш workspace. Для начала найдите её на вашем компьютере, используя файловый менеджер. Вы найдёте её в папке, в которую Вы загрузили ваш Android SDK, далее/extras/google/google_play_services/libproject/google-play-services_lib/.
Скопируйте её в то место на вашем компьютере, которое Вы используете для файлов разработки под Android. Как только вы откомпилируете библиотеку (вы должны скопировать), вернитесь в Eclipse. Выберите Import из меню File. Откройте папку Android, выберите Existing Android Code Into Workspace, и нажмите Next.
Import Play Services Library
Нажмите кнопку Browse и перейдите в то место, в которое вы скопировали Play Services library. Выберите папку, которую вы скопировали и нажмите Finish, что бы импортировать её. Пакет появится в вашем Package Explorer.
Import Play Services Project
Сейчас вы можете начать разработку с Play Services resources. Создайте новый проект в вашей IDE. Как только вы сделаете это, вам нужно будет связать его с Play Services resources. 
В Android Studio вам нужно добавить  build rule в build.gradle файл в модуле для вашего проекта. В dependencies секции используйте следующий синтаксис.
1
compile 'com.google.android.gms:play-services:4.1.32'
Убедитесь, что вы используете в названии последнюю версию Play Services. Вам нужно будет обновить это обозначение, как только обновится версия библиотеки. Сохраните файл и нажмите кнопку Sync Project with Gradle Files.
В Eclipse выберите проект в вашем Package Explorer, нажмите правую кнопку или Project в меню и выберите Properties. Далее выберите Android option слева и нажмите Add в разделе Library.
Add Play Services Library
Выберите библиотеку из pop-up окна и нажмите OK, что бы добавить её. Нажмите Apply, затем OK.
Aply Play Services Library
Какую бы вы IDE не использовали, вам нужно добавить Play Services meta-data в ваш файл manifest. Откройте файл manifest проекта и добавьте элемент meta-data внутрь application элемента:
1
2
<meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
Если вы используете Proguard, то вам нужно будет создать exception. Детальней смотрите Developer Guide. Для получения дополнительной информации по Google Play Services API проверьте  Package Index.
Шаги, которые вы должны сделать в вашем приложении зависят от того, какую функциональность вы хотите реализовать с помощью Play Services.
The processing steps you need to take within your application code will depend on what functionality you want to implement with Play Services. В следующих разделах рассматриваются некоторые общие соображения и действия.
Хотя обновление происходит через  Google Play Store все-же желательно проверять, какая версия установлена на устройстве пользователя, прежде чем производить любые операции с Google Play Services.
Смотрите  Implementing GCM Client пример в Developer Guide для ознакомления с тем, как встраивать эти проверки в класс  Activity . Метод вызова  isGooglePlayServicesAvailable, который вы можете добавить в  helper method, как показано в следующем примере:
1
2
3
4
private boolean checkPlayServices() {
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
    //...
}
Вы можете вызвать метод в  onCreate, прежде чем создавать экземпляр GoogleAPIClient , с помощью которого вы получаете доступ к Play Services resources и в  onResume. Если устройство пользователя не имеет требуемых установленных ресурсов, будет предложено установить их через  Google Play Store.
После проверки уровня поддержки на устройстве пользователя вы можете создать экземпляр класса GoogleAPIClient , что бы воспользоваться Google Play resources. Следующий пример кода демонстрирует это и может быть включён в  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 . Строка  addScope будет меняться в зависимости от того, что будет делать ваше приложение. Этот код так-же устанавливает обратные вызовы для процесса подключения. Ваш класс может имплементировать следующий интерфейс:
1
public class MainActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener
Тогда класс может имплементировать  onConnected и  onConnectionSuspended обратные вызовы для обработки изменений связи с Play Services.
Для обработки ошибок соединения с  Play Services, таких как в случае, если необходима регистрация пользователя ваш класс так-же может имплементировать  onConnectionFailed , для доступа к стандартным методам для устранения типичных ошибок. Некоторые из этих методов будут вызывать метод onActivityResult , когда пользователь возвращается в приложение, так что вы снова можете возобновить соединение.
В целом, ваш  Activity класс должен соединиться с  Play Services в  onStart и отсоединиться в  onStop с помощью класса  GoogleAPIClient , как показано в следующем примере:
1
myClient.connect();
Для некоторых сервисов Play Services, включая Google+, вам нужно зарегистрироваться для доступа. Для этого зайдите в Google APIs Console, нажмите Create Project и введите имя. После создания проекта вы должны будете быть перенаправлены в проект в консоли.
Выберите APIs menu item, найдите Google+ API в списке и нажмите кнопку, что бы включить это. Статус должен измениться на ON после принятия лицензии. Нажатие на список API будет предоставлять вам обзор того, что вы можете с этим делать.
Далее выберите Credentials и нажмите  Create New Client ID. Установите Installed application radio button, выберите Android в качестве типа и введите подробности вашего проекта. Теперь вам необходимо использовать Keytool resource для генерации SHA1 сертификата.
В процессе разработки вы можете использовать debug keystore, введя следующий код в терминале:
1
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
Вы должны убедиться, что это правильное расположение для вашего debug keystore. Если это не так, то измените путь. Когда вы будете выполнять данную команду, то вам будет предложено ввести пароль. Введите  android для debug keystore должны быть введён fingerprint на терминале.
Скопируйте строку  SHA1 и вставьте её в Signing certificate fingerprint box в консоли API.
Copy the SHA1 line and paste it into the Signing certificate fingerprint box in the APIs Console. Включите deep linking, если необходимо и нажмите кнопку, что бы создать ID. Enable deep linking if necessary and then click the button to create the ID.Появится раздел, озаглавленный Client ID for Android Application. Вам не нужно использовать ID в вашем приложении, но вы можете пожелать оставить его копию для ваших личных записей.
Перед тем, как вы можете вызвать Play Services APIs в коде вашего приложения вам нужно будет добавить соответствующие разрешения в файле manifest вашего проекта. Следующий код демонстрирует несколько типичных примеров использования, но вам нужно выбрать соответствующие разрешения для вашего собственного проекта:
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" />
Теперь ваш проект должен быть сконфигурирован для вызова Play Services APIs, которые вам нужны.  Вам нужно будет структурировать ваши классы  Activity  по разному, в зависимости от того, что делает ваше приложение. Ознакомьтесь с  Developer Guide для более подробной информации об этом.
Не забудьте ознакомиться со следующими руководствами для начала работы с некоторыми доступными Play Services:
Если Google services, к которым вы хотите получить доступ не являются частью  Play Services library, то вы можете получить к ним доступ, используя Google's REST API.
Существует много возможностей с Google Play Services в приложениях Android. От игр до услуг определения местоположения, которые вы можете использовать, как существующие достоинства платформы к контексте вашего собственного интерфейса и функциональности.
Процесс установки может показаться слегка запутанным, но один раз сделав установку вы можете сосредоточиться на предоставлении этих сервисов вашим пользователям.


Источник: http://code.tutsplus.com

Комментариев нет:

Отправить комментарий