Servicios de Google Play: ¿Cómo manejar dispositivos que no tienen Google Play?

Los servicios de Google Play son una biblioteca de Android cuyo objetivo es proporcionar:

  • Autenticación OAuth 2.0
  • Inicio de sesión de Google+
  • Botón +1 de Google+
  • Varias otras golosinas

Si lo utilizara (por ejemplo, porque quiero iniciar sesión en Google+), ¿qué sucedería con los usuarios cuyo dispositivo no tenga Google Play? (Nook, Cyanogenmod, China Mobile, dispositivos antiguos, etc.)

PREGUNTA: ¿Mi aplicación será incompatible con estos dispositivos? ¿Se mostrará como compatible, pero luego se bloquea o no funciona?
¿Hay una práctica recomendada para tener esto presente al utilizar los servicios de Google Play?

Si la función de los Servicios de Google Play es esencial para tu aplicación, no habría forma de que tu aplicación funcione.

Puede comprobar si los servicios están habilitados desde su aplicación con GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)
Que devuelve ConnectionResult.SUCCESS si Play Services está disponible.

Ahora puede intentar convencer al usuario de instalarlo (si es posible) o desactivar la función que está utilizando el servicio.

Dado que Google Play Services no es una función declarada en el manifiesto, la aplicación debe instalarse correctamente en cualquier dispositivo, pero puede bloquearse más tarde si está utilizando las API sin comprobar si están disponibles.

Puede probar el comportamiento con el emulador. Basta con crear un AVD sin las API de Google y poner su aplicación en él.

 GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context) 

¡es obsoleto!

Utilizar:

  GoogleApiAvailability api = GoogleApiAvailability.getInstance(); int code = api.isGooglePlayServicesAvailable(activity); if (code == ConnectionResult.SUCCESS) { // Do Your Stuff Here } else { AlertDialog alertDialog = new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage( "You need to download Google Play Services in order to use this part of the application") .create(); alertDialog.show(); } 

Si de alguna manera necesitas usar Play Services, o si mantienes una aplicación heredada que hace llamadas a Play Services, yo recomendaría esta estrategia:

  1. En el inicio de la aplicación, compruebe si Play Services está disponible o no
  2. Si no está disponible, redirigir las llamadas a NOGAPP

NOGAPP es una implementación de código abierto de Google Play Services.
Carece de muchas características, pero está en desarrollo activo. Muchas características siguen siendo stubs.

Para los servicios de ubicación, hay LOST , un reemplazo para las API de ubicación de servicios de Google Play.

Es posible que tu aplicación no funcione a la perfección, pero al menos es mejor que estrellarte.

Por supuesto, lo mejor es NO usar Google Play Services, desde el principio.

  • Descargar JAR de Google Play Services
  • ¿Todavía es necesario el permiso READ_GSERVICES para Google Maps?
  • AdMob con Google Play Services: prueba de anuncios: no hay relleno en el servidor de anuncios
  • ¿Cómo se instalan los marcos de Google (Play, Accounts, etc.) en un dispositivo virtual de Genymotion?
  • Servicios de Google Play en un proyecto de Android Studio 0.1.1 gradle?
  • La compra en la aplicación utiliza una cuenta incorrecta después de la actualización
  • ¿Cómo puedo determinar la versión de los servicios de Google Play?
  • ¿Es Google Play Services para Froyo compatible con Android 2.3 y versiones superiores?
  • ¿La API del complemento de servicios de Google Play de Unity no está sincronizada con la función de interfaz de usuario de Show Leaderboard?
  • Fused Location Provider - onLocationChanged deja de ser llamado
  • Implementación de servicios de Google Play en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.