Android GooglePlayServicesUtil.getErrorDialog () no muestra el diálogo

Estoy tratando de comprobar la disponibilidad de Google Play Services APK antes de usarlo. Tengo un dispositivo donde el paquete está desactualizado (el registro dice " … los servicios de Google Play están desactualizados, requiere 3225100 pero se encuentran 3136134 ").
El código siguiente se encargará de esta situación y mostrará un diálogo que le pide al usuario que realice la actualización. Por una razón desconocida para mí la línea

GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); 

Devuelve inmediatamente no mostrar ningún diálogo (y no bloquear el subproceso de interfaz de usuario en un evento de interfaz de usuario).
¿Podría por favor arrojar una luz de lo que es posible ir y cómo rectificar el código con el fin de obtener el cuadro de diálogo se muestra?

 @Override protected void onResume() { super.onResume(); // Check device for Play Services APK. If check succeeds, proceed with // GCM registration. if (checkPlayServices()) { gcm = GoogleCloudMessaging.getInstance(this); regid = getRegistrationId(context); if (regid == null || regid.length() == 0) { registerInBackground(); } else { this.user.setGCMRegistrationId(regid); } } else { Log.i(TAG, "No valid Google Play Services APK found."); } } /** * Check the device to make sure it has the Google Play Services APK. If * it doesn't, display a dialog that allows users to download the APK from * the Google Play Store or enable it in the device's system settings. */ private boolean checkPlayServices() { int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (resultCode != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); } else { Log.i(TAG, "This device is not supported."); finish(); } return false; } return true; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PLAY_SERVICES_RESOLUTION_REQUEST: if (resultCode == RESULT_CANCELED) { Toast.makeText(this, "Google Play Services must be installed.", Toast.LENGTH_SHORT).show(); finish(); } return; } super.onActivityResult(requestCode, resultCode, data); } 

Encontré un comportamiento extraño con un código similar al tuyo cuando incluí la biblioteca de servicios de Google Play de forma incorrecta en mi proyecto. Tienes que importar como proyecto el directorio google-play-services_lib y tienes que incluir google-play-services.jar en tu classpath. La razón es que el proyecto contiene un montón de recursos, incluyendo los necesarios para mostrar el cuadro de diálogo apropiado para getErrorDialog() .

  • Error intermitente del punto final de la nube autenticada en el cliente de Android
  • Cómo obtener la ubicación del usuario Android
  • AdvertisingIdClient.getAdvertisingIdInfo (contexto) es thworing NoClassDefFoundError
  • NoSuchFieldError: No hay campo estático MapAttrs de tipo cuando se utiliza MapFragment con Play Services 6.5
  • ¿La API social de Unity necesita algunos complementos para Android?
  • Cómo detectó las referencias de Android
  • Biblioteca de códigos de barras de Google Vision no encontrada
  • Error al resolver: com.google.android.gms: play-services-measurement: 9.6.1
  • Servicios de Google Play - Iniciar sesión - Depuración de la ID de cliente contra la versión
  • Más una opción de botón compartido hace una entrada vacía
  • La API de Google Maps para Android v2 lanza GooglePlayServicesNotAvailableException, fuera de fecha, SupportMapFragment.getMap () devuelve null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.