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?

  • Obtener la ubicación de Android a través de wifi no funciona
  • Rotar un ImageView para hacer frente a una posición dada en latitud y longitud
  • Android: ¿Cómo obtener una altitud exacta?
  • Obtención de velocidad mediante el API de ubicación de Google Play
  • RuntimeException en el análisis de Gson JSON: Error al invocar java.lang.ClassLoader protegido () sin args
  • El oyente de ubicación funciona desde un servicio pero no es un servicio de IntentService
  • Posicionamiento egnos en un dispositivo android
  • Android getLatitude () devuelve latitud geodésica o geocéntrica?
  • ¿Cómo puedo obtener las coordenadas de un mapa al toque con MapFragment (no MapView)?
  • IllegalArgumentException: el proveedor no exisit: null en Maps V1
  • El proveedor de ubicación fusionado setsmallestDisplacement no funciona en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.