Introducción a servicios de Google Play
<h2>¿Qué es?</h2>
Google Play Services es un conjunto de API que se ha separado del stack del sistema operativo Android para ofrecer la última versión disponible a componentes críticos para desarrolladores de una manera rápida, evitando así la dependencia del OEM o Carriers. A través de una biblioteca de código el archivo APK de Google Play gestiona los servicios de Google como Google Maps, Google Plus, In-app Purchases, etcétera.
<h2>¿Cómo funciona?</h2>
El archivo APK de Google Play utiliza un <a href="http://androidtitlan.mx/2011/07/introduccion-a-servicios-en-android-sdk/">Servicio</a> que corre en un hilo en segundo plano dentro del sistema operativo, el cuál puede interactuar con la biblioteca cliente que debe importarse en nuestra aplicación, permitiendo que cualquier dispositivo que tenga Android 2.2(Froyo) pueda hacer uso de las últimas características del API.
<em>Google Play Services te da la libertad de utilizar las API's más nuevas sin preocuparse por el soporte de dispositivos.</em></p>
<h2>Instalación</h2>
El SDK de Google Play services está disponible para su descarga desde el SDK Manager, además de tener un dispositivo físico con Android 2.2 o superior para hacer debugging y correr tu aplicación.
Asumiendo que tienes instalado ADT en Eclipse, deberás hacer lo siguiente para tener Google Play services listos para trabajar:
- Damos click en el botón <em>Android SDK Manager que se muestra en la <strong>figura 0</strong> </em>o en el menú<em> Ventana>Android SDK Manager como se muestra en la <strong>figura 1.</strong></em>
<em>Figura 0. El botón de Android SDK Manager en Eclipse..</em></p>
<em>Figura 1. El menú desplegable en Eclipse.</em></p>
<em> </em>
- Una vez que estemos en el selector de paquetes, buscamos la carpeta <em>Extras </em>y seleccionamos la opción<em> Google Play services</em> y presionamos el botón <em>Install packages, como se muestra en la figura 2</em>
- Aparecerá una ventana emergente, donde se muestran los detalles del paquete y tendrás que aceptar la licencia de uso. Seleccionamos la opción <em>Accept </em>y luego damos click al botón<em> Install </em>como se muestra en la<em> figura 3.</em>
<em>Figura 3. Detalles del paquete Google Play services.</em></p>
- Ahora procederemos a importar el proyecto que descargamos en nuestro <em>workspace. </em>Click en <em>Archivo</em>, selecciona <em>Importar</em>, selecciona <em>Android</em> > <em>Código Android existente en workspace</em> como la * figura 4 * ilustra. Busca la ruta donde se descargó el paquete(típicamente es <em><carpeta-donde-tienes-android-sdk>/extras/google/googleplayservices/libproject/google-play-services_lib</em>).
<em>Figura 4. Seleccionamos el tipo de import como Android y luego Existing Android Code Into Workspace.</em></p>
- Una vez que tengamos el código dentro de nuestro workspace, podemos agregarlo como proyecto biblioteca para futuras aplicaciones.
</br>
<h2>Validando nuestro dispositivo</h2>
Como se mencionó anteriormente, Google Play funciona correctamente en dispositivos con Android 2.2 o superior, para ello es necesario <strong>siempre</strong> validar si existe Google Play en el dispositivo antes de acceder a las características de los servicios, la mejor manera es hacerlo en el método onResume() en nuestra actividad principal:
@Override
protected void onResume() {
checkGooglePlayServicesAvailability();
super.onResume();
}
public void checkGooglePlayServicesAvailability() {
int statusCode = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(this);
if (statusCode == ConnectionResult.SUCCESS) {
Log.d("Is Google Play services available?", "" + statusCode);
} else {
GooglePlayServicesUtil.getErrorDialog(statusCode, this, 0).show();
}
Donde el método más importante es isGooglePlayServicesAvailable(), ya que regresa cualquiera de los siguientes <a href="http://developer.android.com/reference/com/google/android/gms/common/ConnectionResult.html#CONSTANTS">códigos de resultado</a>:
0 = SUCCESS
1 = SERVICEMISSING
2 = SERVICEVERSIONUPDATEREQUIRED
3 = SERVICEDISABLED
4 = SIGNINREQUIRED
5 = INVALIDACCOUNT
6 = RESOLUTIONREQUIRED
7 = NETWORKACCOUNT
8 = INTERNALERROR
9 = SERVICEINVALID
10 = DEVELOPER_ERROR
Si el código de resultado es * SUCCESS *, entonces el APK de Google Play services está actualizado, y puedes proceder con normalidad, sin embargo, si el código de resultado es SERVICEMISSING, SERVICEVERSIONUPDATEREQUIRED o SERVICE_DISABLED como se muestra en la<em> figura 5</em>, se invoca el método <em>getErrorDialog()</em> para mostrar un mensaje de error al usuario, lo cuál permitirá que descargue el APK o que lo habilite desde la configuración del sistema.
<em>Figura 5. Captura de pantalla cuando la versión instalada de Google Play services ha sido deshabilitada en este dispositivo</em></p>
Ahora es tu turno de encontrar nuevas maneras de explotar los API's más importante de Android, a través de los servicios de Google Play.