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.)
- Entrada duplicada: com / google / android / gms / internal / zzahl.class
- Clase no encontrada en aar
- LocationServices.SettingsApi llamando onActivityResult con RESULT_CANCELED
- Actualizar a Google Play Services: Error de la versión Error al resolver: com.google.android.gms: play-services-measurement: 9.0.0
- Advertencia en Google Map
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?
- Compruebe el estado de compra de Android pero devuelva el token de compra no se encontró
- ¿Cómo detectar si la Google Play Store está descargando / instalando una aplicación específica?
- No se puede crear con gradle cuando Google Play Services se agrega como dependencia
- Cómo ejecutar la versión de la aplicación de depuración en una base de datos de depuración de 'FireBase'
- Error de servicio de Google Play
- apk tamaño hinchan cuando se cambia de admob standalone SDK a google play servicios SDK
- Android Google Plus SDK: cómo obtener la devolución de llamada en el botón +1 (PlusOneButton)
- La aplicación para Android se congela tras implementar Google Firebase
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:
- En el inicio de la aplicación, compruebe si Play Services está disponible o no
- 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.
- Cómo configurar el encabezado de autorización (OAuth token) en una solicitud Android OKHTTPClient
- Cómo implementar mi propia caché de disco con la biblioteca picasso – Android?