Puedo verificar si el GPS está encendido o no usando isProviderEnabled(). Si no está activado, estoy lanzando un intento para que el usuario pueda habilitar el GPS. Al final estoy nuevamente comprobando si el GPS está habilitado o no por el usuario. Si el usuario no habilita el GPS y sale, todavía isProviderEnabled() devuelve NULL. ¿Cuál podría ser el problema? Por favor guíame.El GPS no está habilitado pero isProviderEnabled() está devolviendo verdadero
String provider = LocationManager.GPS_PROVIDER;
// Check if GPS is enabled
boolean enabled = myLocationManager.isProviderEnabled(provider);
if (!enabled) {
// GPS not enabled
Log.d("", "Provider " + provider + " is not enabled");
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
// Consider the case when user does not enable GPS and come out.
} else {
Log.d("", "Provider is enabled");
}
// Re-check if user has enabled or not. (Note: case: user has not enabled GPS)
enabled = myLocationManager.isProviderEnabled(provider);
if(!enabled)
{
Log.d("","provider not enabled");
}
else
{
// Control is coming here though user has not enabled GPS in settings
Log.d("","GPS is enabled");
}
Gracias, Biplab
Gracias, Es perfecto como quería. –
No funcionó para mí, lo probé con gps activado y desactivado, y obtuve el mismo brindis en ambas ocasiones. –
@BillGary eso probablemente se deba a que su red o proveedor pasivo aún está activo. Esa cadena de proveedor debe contener TODOS los proveedores habilitados, y no solo GPS. Su verificación de nulo solo nos dice que un proveedor está habilitado, y no cuál es realmente. – Guardanis