Marcadores y puntuaciones en tiempo real, logros y premios, botón +1, mensajería en tiempo real entre jugadores y mucho más. Eso es lo que ofrece el nuevo servicio de Google a los desarrolladores.
Requisitos previos
- Necesitas un dispositivo con la versión 2.2 de Android o superior (API 8) y con Google Play para probar (así que alguna ROM puede que no vaya). Si no también se puede probar con el simulador, creando una instancia del AVD del 4.2.2 o superior.
- Si usáis eclipse (como el 99% de todos), abrís Android SDK Manager y en la carpeta Extras, marcáis "Google Play Services". Actualizar además a la última API (mínimo la 17) y las herramientas es recomendable. Instaláis los paquetes.
- Una vez instalados y desde eclipse, en el mismo workspace que vuestro juego, importáis el proyecto que está en la carpeta <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/ (<android-sdk> es donde hayáis instalado el SDK).
- En las propiedades del proyecto de vuestro juego (clic-derecho en la carpeta desde Eclipse), os vais a Android y añadís el proyecto de google-play-services-lib como referencia.
- Además seleccionáis el Target de vuestro proyecto con la última versión que tengáis de las Google APIs (mínimo la 17).
Dentro de Eclipse
- En el archivo de Proguard, (proguard-project.txt se puede abrir desde Eclipse), añadís
- Os descargáis de GitHub https://github.com/playgameservices/android-samples/tree/master/BaseGameUtils y añadís el contenido de la carpeta src a vuestro proyecto. Es licencia Apache y funciona muy bien para empezar. Hay sólo un par de clases y es muy fácil de usar, de hecho la única que usaréis será BaseGameActivity
- Evidentemente vuestra actividad principal, o desde la que queráis hacer todo el tema social (marcadores, logros, etc), debe heredar de BaseGameActivity.
- En el Manifest, dentro de la etiqueta application añadís el siguiente código:
- ¡Error de compilación! No os preocupéis , necesitamos el app_id, y para ello nos vamos a la consola de desarrollador
-keep class * extends java.util.ListResourceBundle { protected Object[][] getContents();}
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" />
Consola de desarrollador
- Lo primero que necesitáis es subir una versión del juego, si ya está publicado ya la tenéis y si no firmad una versión y la subís a alpha.
- En la sección "Servicios de juegos" añadís el juego, esto es un poco engañoso, puesto que no se refiere al APK, si no a una "entidad" en la que podréis crear marcadores, logros, gestionar mensajería y enlazar las aplicaciones, de forma que podéis tener varias versiones del APK (de pago, gratis con publicidad) o en diferentes plataformas (en iOS o Web) y todas compartiendo los mismos marcadores y logros. Podéis crear algún marcador y añadir algún logro para probar después.
- Enlazáis el APK que habéis subido previamente.
- El identificador que necesitamos (app_id) es un código numérico que aparece justo al lado del nombre del juego, en el título. Lo copiamos y creamos un archivo XML en la carpeta de res/values donde lo añadimos: <string name="app_id">XXXXXXXX</string>
- En la sección de Testing, debéis añadir al menos una cuenta de prueba, para poder probar los servicios antes de publicar la app. Deben ser cuentas con perfiles Google+ (p.ej. de GMail).
Consola API de Google
- En la "otra" consola (https://code.google.com/apis/console) entráis en la sección API Access y dentro en hacéis clic en "Create another client ID".
- Seleccionáis Installed application, Android, introducís el nombre del paquete, y deshabilitáis la opción Deep Linking. Todavía no le dáis a crear.
- El certificado SHA1 lo podéis obtener con la herramienta keytools. En un Mac/Ubuntu estará en el Path por lo que no habrá problema y en un Windows la encontraréis dentro del JDK. En un terminal introducís: keytool -list -v -keystore vuestro_archivo_de_firmas.key Donde vuestro_archivo_de_firmas.key es evidentemente el que utilizáis para firmar los APK. Introducís en el formulario el código obtenido y ya podéis crear. Si había otro identificador de cliente lo podéis borrar.
De nuevo en Eclipse
- Google Play Services sólo funciona en aplicaciones firmadas, por lo que debéis firmar los APK antes de testearlos.
- Es fácil comprobar si Google Play Services está disponible, podéis usar el método estático: GooglePlayServicesUtil.isGooglePlayServicesAvailable(Context context)
- Y ya sólo consiste en curiosear dentro de las clases del proyecto de GitHub que hemos importado previamente. Según que queráis hacer podéis habilitar un cliente u otro (p.ej. CLIENT_GAMES para marcadores y logros, CLIENT_PLUS para el botón +1) y con los métodos getGamesClient y getPlusClient podéis acceder a las instancias desde las que podréis realizar todas las operaciones.
No hay comentarios:
Publicar un comentario