<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (locationManager.getProvider(LocationManager.GPS_PROVIDER) != null) {
// 使用GPS_PROVIDER獲取位置信息
} else if (locationManager.getProvider(LocationManager.NETWORK_PROVIDER) != null) {
// 使用NETWORK_PROVIDER獲取位置信息
} else {
// 沒有可用的Provider
}
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// 獲取到位置信息
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// Provider狀態改變
}
@Override
public void onProviderEnabled(String provider) {
// Provider可用
}
@Override
public void onProviderDisabled(String provider) {
// Provider不可用
}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
通過以上解決方法,可以避免在使用LocationManager時常見的坑,確保順利獲取到位置信息。