我可以使用isProviderEnabled()檢查GPS是否打開。如果它不在,我正在啓動意圖,以便用戶可以啓用GPS。 最後,我再次檢查GPS是否由用戶啓用。 如果用戶沒有啓用GPS並出來,仍isProviderEnabled()返回NULL。 可能是什麼問題?請指導我。GPS未啓用,但isProviderEnabled()返回true
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");
}
感謝, Biplab
謝謝,這是我想要的完美。 – 2012-04-12 05:34:40
沒有爲我工作,我嘗試了啓用和禁用gps,並獲得相同的敬酒兩次。 – 2012-06-26 19:42:50
@BillGary這可能是因爲你的網絡或被動提供者也是活躍的。該提供商字符串應包含所有啓用的提供商,而不僅僅是GPS。他對null的檢查僅告訴我們提供者已啓用,而不是實際的。 – Guardanis 2013-12-16 21:20:34