Tôi có thể kiểm tra xem GPS có đang bật hay không bằng isProviderEnabled(). Nếu nó không được bật, tôi sẽ khởi chạy ý định để người dùng có thể bật GPS. Cuối cùng tôi lại kiểm tra xem GPS có được bật bởi người dùng hay không. Nếu người dùng không bật GPS và thoát ra, vẫn isProviderEnabled() đang trả về NULL. Điều gì có thể là vấn đề? Xin vui lòng hướng dẫn cho tôi.GPS chưa được bật nhưng isProviderEnabled() đang trả về 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");
}
Cảm ơn, Biplab
Cảm ơn, Nó là hoàn hảo như tôi muốn. –
Không làm việc cho tôi, tôi đã thử nó với gps kích hoạt và vô hiệu hóa, và có cùng một bánh mì nướng cả hai lần. –
@BillGary có thể do nhà cung cấp mạng hoặc thụ động của bạn vẫn hoạt động. Chuỗi nhà cung cấp đó phải chứa TẤT CẢ các nhà cung cấp được bật và không chỉ GPS. Kiểm tra của ông cho null chỉ cho chúng ta biết rằng một nhà cung cấp được kích hoạt, và không thực sự là. – Guardanis