Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo comprobar la versión de servicios de Google Play?

En mi aplicación, necesito comprobar la versión de los servicios de Google Play (que se instala en el dispositivo del usuario). Es posible ? Y si es así, ¿cómo puedo hacer eso? Busqué en Google, pero no pude encontrar nada!

  • El botón de inicio de sesión de Servicios de juegos de Google Play escupirá "Error desconocido"
  • OnConnectionFailed dando SIGN_IN_REQUIRED (4)
  • Android near.MESSAGES_API para detectar sólo beacons
  • ¿Cómo puedo crear una aplicación de Android en Android Studio que usa Google Maps Api v2?
  • Servicios de reproducción de Google que devuelven un token firmado con una clave distinta de Google
  • Servicios de Google Play que no funcionan en el emulador de Android API Nivel 11
  • Entrada duplicada: com / google / firebase / FirebaseApiNotAvailableException.class
  • Android: AdMob no funciona
  • 10 Solutions collect form web for “¿Cómo comprobar la versión de servicios de Google Play?”

    Encontré una solución sencilla:

    int v = getPackageManager().getPackageInfo("com.google.android.gms", 0 ).versionCode; 

    Si miras en el enlace proporcionado por Stan0 verás esto :

     public static final int GOOGLE_PLAY_SERVICES_VERSION_CODE 

    Versión mínima del paquete de servicios de Google Play (declarada en AndroidManifest.xml android: versionCode) para ser compatible con esta versión del cliente. Valor constante: 3225000 (0x003135a8)

    Por lo tanto, cuando se establece que en su manifiesto y luego llamar isGooglePlayServicesAvailable(context) :

     public static int isGooglePlayServicesAvailable (Context context) 

    Verifica que los servicios de Google Play están instalados y habilitados en este dispositivo y que la versión instalada en este dispositivo no es anterior a la requerida por este cliente.

    Devoluciones

    • Código de estado que indica si se produjo un error. Puede ser uno de los siguientes en ConnectionResult: SUCCESS , SERVICE_MISSING , SERVICE_VERSION_UPDATE_REQUIRED , SERVICE_DISABLED , SERVICE_INVALID .

    Se asegurará de que el dispositivo está utilizando la versión de su aplicación requiere, si no, entonces usted puede tomar medidas de acuerdo con la documentación

    Editar

    GooglePlayServicesUtil.isGooglePlayServicesAvailable() está obsoleto y ahora debe utilizarse GoogleApiAvailability.isGooglePlayServicesAvailable() .

    Aquí está mi solución:

     private boolean checkGooglePlayServices() { final int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (status != ConnectionResult.SUCCESS) { Log.e(TAG, GooglePlayServicesUtil.getErrorString(status)); // ask user to update google play services. Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, 1); dialog.show(); return false; } else { Log.i(TAG, GooglePlayServicesUtil.getErrorString(status)); // google play services is updated. //your code goes here... return true; } } 

    Y tiene dos opciones, escriba su código directamente en el bloque else como se comenta, o utilice el valor booleano devuelto para este método para escribir código personalizado.

    Espero que este código ayude a alguien.

    De las actualizaciones más recientes he terminado con este código, he hecho un método práctico para gestionar todas las cosas relacionadas con él ..

    Todos los detalles relacionados con la disponibilidad de Servicio y detalles relacionados están disponibles aquí .

      private void checkPlayService(int PLAY_SERVICE_STATUS) { switch (PLAY_SERVICE_STATUS) { case ConnectionResult.API_UNAVAILABLE: //API is not available break; case ConnectionResult.NETWORK_ERROR: //Network error while connection break; case ConnectionResult.RESTRICTED_PROFILE: //Profile is restricted by google so can not be used for play services break; case ConnectionResult.SERVICE_MISSING: //service is missing break; case ConnectionResult.SIGN_IN_REQUIRED: //service available but user not signed in break; case ConnectionResult.SUCCESS: break; } } 

    Lo uso así,

     GoogleApiAvailability avail; int PLAY_SERVICE_STATUS = avail.isGooglePlayServicesAvailable(this); checkPlayService(PLAY_SERVICE_STATUS); 

    Y para la versión GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE; Te regalaré.

    Y una de las respuestas más útiles que encontré durante mi investigación está aquí.

    Me he topado con el mismo problema esta mañana. Y lo hizo por el consejo de stan0. Gracias stan0.

    Sólo se necesita un cambio basado en el código de ejemplo de https://developers.google.com/maps/documentation/android/map .

     private void setUpMapIfNeeded() { // Do a null check to confirm that we have not already instantiated the // map. if (mMap == null) { FragmentManager mgr = getFragmentManager(); MapFragment mapFragment = (MapFragment)mgr.findFragmentById(R.id.map); mMap = mapFragment.getMap(); // Check if we were successful in obtaining the map. if (mMap != null) { // The Map is verified. It is now safe to manipulate the map. setUpMap(); }else{ // check if google play service in the device is not available or out-dated. GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); // nothing anymore, cuz android will take care of the rest (to remind user to update google play service). } } } 

    Además, debe agregar un atributo a su manifest.xml como:

     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.package.name" android:versionCode="3225130" android:versionName="your.version" > 

    Y el valor de "3225130" se toma del google-play-services_lib que su proyecto está usando. Además, ese valor se encuentra en la misma ubicación de manifest.xml en google-play-services_lib.

    Espero que sea de ayuda.

    Si busca Servicios de Google Play en el Administrador de aplicaciones, mostrará la versión instalada.

     int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if(status != ConnectionResult.SUCCESS) { if(status == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED){ Toast.makeText(this,"please udpate your google play service",Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "please download the google play service", Toast.LENGTH_SHORT).show(); } } 
     final int gpsVersion = getResources() .getInteger(com.google.android.gms.R.integer.google_play_services_version); 

    Utilice la siguiente función para comprobar si los servicios de Google Play se pueden utilizar o no

      private boolean checkGooglePlayServicesAvailable() { final int connectionStatusCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (GooglePlayServicesUtil.isUserRecoverableError(connectionStatusCode)) { showGooglePlayServicesAvailabilityErrorDialog(connectionStatusCode); return false; } return true; } 
     int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE); int currentVersion = getAppVersion(context); if (registeredVersion != currentVersion) { Log.i(TAG, "App version changed."); return ""; } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.