Ich kann überprüfen, ob GPS isProviderEnabled() verwendet oder nicht. Wenn es nicht aktiviert ist, starte ich Absicht, damit der Benutzer GPS aktivieren kann. Am Ende überprüfe ich wieder, ob GPS vom Benutzer aktiviert ist oder nicht. Wenn der Benutzer GPS nicht aktiviert und nicht herauskommt, gibt isProviderEnabled() NULL zurück. Was könnte das Problem sein? Bitte führen Sie mich.GPS ist nicht aktiviert, aber isProviderEnabled() gibt true zurück
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");
}
Danke, Biplab
Danke, es ist perfekt, wie ich wollte. –
Hat nicht für mich funktioniert, ich habe es mit GPS aktiviert und deaktiviert versucht, und bekam den gleichen Toast beide Male. –
@BillGary das liegt wahrscheinlich daran, dass Ihr Netzwerk- oder Passive-Provider auch noch aktiv ist. Diese Provider-Zeichenfolge sollte ALLE aktivierten Provider und nicht nur GPS enthalten. Seine Überprüfung auf Null sagt uns nur, dass ein Provider aktiviert ist, und nicht was tatsächlich ist. – Guardanis