¿Qué es el plan de retroceso para dispositivos sin Google Play Services?

Actualmente, estoy migrando los servicios de Google anteriores, que hacen uso de la biblioteca jar en Google Play Services.

  • AdMob de Google
  • Google analitico
  • Google Drive

Sin embargo, en la guía de migración, Google no menciona lo que debemos hacer, para dispositivos que no tienen Servicios de Google Play o sin Servicios de Google Play actualizados.

Por lo tanto, ¿debemos ignorar a los usuarios sin Google Play Services, o hay un plan de repliegue?

Tener que mantener un conjunto separado de archivos jar y el código heredado para el plan de retroceso es bastante engorroso. Además, puede haber problemas conflictivos, tener archivos jar y GPS lado a lado. Utilice los servicios de Google Play y el SDK de AdMob

1. Comprobación de los servicios de Google Play

Como se documenta aquí , siempre debe asegurarse de que:

  1. El APK de Google Play Services está presente en absoluto.
  2. Que la versión correcta está instalada.

En su mayoría realizaría esas comprobaciones en el método onResume() . El método GooglePlayServiceUtils tiene un método llamado isGooglePlayServicesAvailable(...) que comprueba si los servicios de Google Play están instalados y que son la versión correcta. Devuelve un código de error int que le dice más o menos lo que está mal:

 @Override public void onResume() { super.onResume(); int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity()); switch(errorCode) { case ConnectionResult.SUCCESS: // Google Play Services installed and up to date break; case ConnectionResult.SERVICE_MISSING: // Google Play services is missing on this device. break; case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: // The installed version of Google Play services is out of date. break; case ConnectionResult.SERVICE_DISABLED: // The installed version of Google Play services has been disabled on this device. break; case ConnectionResult.SERVICE_INVALID: // The version of the Google Play services installed on this device is not authentic. break; case ConnectionResult.DATE_INVALID: // The device date is likely set incorrectly. break; } } 

Puede utilizar un método como showErrorDialogFragment(...) de GooglePlayServiceUtils para mostrar un mensaje de error apropiado:

 int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity()); if(GooglePlayServiceUtil.showErrorDialogFragment(errorCode, getActivity(), REQUEST_CODE)) { // Dialog was shown } else { // Dialog was not shown. } 

El cuadro de diálogo sólo se muestra cuando el código de error es algo distinto de ConnectionResult.SUCCESS .

Aquí puede encontrar documentación para la clase GooglePlayServiceUtil .

2. Recuperación

Si necesita una alternativa depende únicamente de su aplicación y del mercado al que se dirige. Por ejemplo, si lo publicas en la Google Play Store, lo cual supongo que haces desde que usas Google Play Services, entonces realmente no necesitas un fallback. Porque para que la gente descargue la aplicación, primero necesitan la Google Play Store y, si tienen Google Play Store, tienen acceso a los Servicios de Google Play. Por supuesto, es una historia totalmente diferente si quieres publicarlo para dispositivos de Amazon, o en Nokia Store, porque los dispositivos que tienen estos no tienen Google Play Store ni Google Play Services. También en mercados como China apenas hay dispositivos Android con la Google Play Store o cualquier otro servicio de Google, por lo que esencialmente tienes que decidir si es necesario para tu aplicación, pero como ya he dicho si la publicas en Google Play Store No te preocupes por eso. Las comprobaciones y también el diálogo de error que mencioné anteriormente debe ser más que suficiente para garantizar que su aplicación funciona bien. El lanzamiento de nuevas versiones del APK de Google Play Services es normalmente bastante rápido. Puede tardar unos días, pero después de eso la mayoría de los dispositivos han recibido la actualización. También tienes que pensar en una cosa: Si desarrollas tu aplicación para requerir funciones de los actuales Servicios de Google Play, lo más probable es que no tengas problemas ya que casi todos los dispositivos ya tienen la versión actual, sería bastante difícil Busque un dispositivo que no esté actualizado. Usted sólo tiene que tener cuidado cuando usted está presionando rápidamente hacia fuera una actualización a su aplicación que utiliza alguna nueva característica que se ha introducido hace apenas unos días. En ese caso, podría encontrar más problemas.

Pero al final tienes que recordar que todo depende del país en el que publiques tu aplicación y en los ecosistemas para los que quieres liberar tu aplicación.

¡Espero poder contestar a su pregunta y si usted tiene alguna otra pregunta no dude en preguntar!

Utilizo Analytics y Admob para mi aplicación y ambos trabajan con dispositivos que no tienen instalados los servicios de reproducción de Google

Analytics: enlace aquí

Nota: El SDK se puede utilizar y funcionará en dispositivos que no tengan Servicios de Google Play. En este caso, el SDK volverá automáticamente al envío local.

Admob: vea esta pregunta en SO . También he leído en una discusión de grupo de Google sobre este tema y un desarrollador en el equipo de Admob ha confirmado que funcionará pero ahora no puedo encontrar el enlace.

Para otras bibliotecas de Google Play Services, no las uso, así que no puedo confirmarlas.

  • Firebase Auth no funciona - "Actualizar los servicios de Google Play" msg en el emulador (Android)
  • Falta de servicios de Google Play desde AVD
  • Error al inflacionar la clase com.google.android.gms.ads.AdView Android Studio
  • Android no recibe actualizaciones de ubicación cuando la pantalla está bloqueada
  • Google Analytics V4 con dispositivos Amazon
  • Android GoogleMap o SupportMapFragment - excepción de puntero nulo
  • No se encontró ningún recurso que coincida con el nombre dado '@android: style / Theme.Material.Light.DialogWhenLarge.NoActionBar'
  • GoogleSign en error sólo en dispositivos Xiomi
  • Google Mobile Services (GMS): NullPointerPointerException de llamar a String.toLowerCase (java.util.Locale)
  • Error de Google Play Services - Informe de errores Incomprensible
  • El seguimiento de campañas no funciona después de pasar a Google Play Services
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.