Compruebe si el usuario ha activado GPS después de

Llano y simple. Comienzo una Actividad y compruebo si el teléfono tiene el módulo GPS habilitado o no. Si no está habilitado, le solicito al usuario un diálogo y le pregunto si desea habilitarlo manualmente. Sí, activar los ajustes de ubicación. Ahora el usuario puede habilitarlo si lo desea, pero tengo que comprobar lo que ha hecho.

try { isGPSEnabled = locationManager .isProviderEnabled(LocationManager.GPS_PROVIDER); } catch (Exception ex) {} if (isGPSEnabled) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage( "Your GPS module is disabled. Would you like to enable it ?") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // Sent user to GPS settings screen final ComponentName toLaunch = new ComponentName( "com.android.settings", "com.android.settings.SecuritySettings"); final Intent intent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setComponent(toLaunch); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivityForResult(intent, 1); dialog.dismiss(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); } 

Necesito saber lo que el usuario ha elegido en la configuración de ubicación, cuando él vuelve a fin de proceder con mi lógica en el código. Básicamente, tengo que esperar a que el usuario haga una elección y volver a mi actividad, y también para volver a comprobar el estado del módulo gps de nuevo.

¿Por qué no verificar LocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) en su método onActivityResult() ? Cuando el usuario regresa, este método debe ser llamado porque ha llamado startActivityForResult() . Si el usuario ha habilitado GPS, entonces isProviderEnabled() debería devolver un resultado diferente.

Alternativamente, siempre haga la comprobación GPS en su método onResume. Si el usuario regresa de los ajustes de ubicación y no ha habilitado GPS, simplemente recibirá el mismo mensaje hasta que se active GPS.

¿O me estoy perdiendo algo?

  • IllegalArgumentException: el proveedor no exisit: null en Maps V1
  • obtener la ubicación actual (gps / wifi)
  • Cómo comprobar la ubicación de Mock en Android Marshmallow?
  • Android - Cómo determinar si las coordenadas se encuentran en la carretera en Google Maps
  • ¿Cómo encontrar si un punto GPS se encuentra en un conjunto determinado de inicio y fin ubicación GPS?
  • Android getLatitude () devuelve latitud geodésica o geocéntrica?
  • Android Advertencia: JAR no existe o no contiene recursos
  • Conmutación entre proveedor de red y GPS
  • Bug in Android Geofence Código de ejemplo? ¿Puede alguien confirmar?
  • DDMS no puede enviar la ubicación al emulador
  • Cambio de idioma dentro de la aplicación Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.