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.
- Proveedor wifi onLocationChanged nunca se llama
- Cómo animar un marcador a través de un ArrayList de LatLng puntos?
- Android locationManager sigue llamando onLocationChanged después de removeUpdates
- API de ubicación de Google: solicita actualizaciones de ubicación con intención pendiente?
- Diferencia entre LocationRequest setInterval (long millis) y LocationRequest setFastestInterval (long millis)
- No ver Geofence Transitions en el tutorial de Google sobre Geofencing
- Obtener un total de "Zonas / Zonas" en las que actualmente estoy, basado en la ubicación actual
- Android - cómo obtener la ubicación del amigo
- Qt5 QGeoPositionInfoSource :: createDefaultSource () se bloquea en Android 5.0
- La ubicación de la red Android tarda horas en actualizar la ubicación
- RequestLocationUpdates no se actualiza en intervalos en Android
- Getlastknownlocation siempre devuelve null después de reinstalar el archivo apk a través de eclipse
- LocationManager devuelve la antigua ubicación en caché "Wifi" con la marca de hora actual
¿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?
- WebView shouldOverrideUrlLoading () no se invocan enlaces no válidos
- Marcos RESTful para Android, iOS …?