Android 위치 시스템의 NETWORK 공급자를 통해 현재 위치 좌표를 얻는 것이 사용자에게 어려운 일입니다. , 현재 좌표 대신 오래된 좌표를 지속적으로 수신하기 때문입니다. 여러 기존 클래스를 구현했는데도 문제가 지속됩니다.
MainActivity
public class MainActivity extends Activity { GPSTracker mGPS = new GPSTracker(this); @Override protected void onCreate(Bundle savedInstanceState) { // ... if (mGPS.canGetLocation) { mGPS.getLocation(); // ... } else { // ... } } }
GPSTracker
public class GPSTracker implements LocationListener { private LocationManager locationManager; public Location getLocation() { // ... if (isNetworkEnabled) { locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); // ... } // ... return location; } }
이 문제는 위치 업데이트가 충분하지 않기 때문에 발생할 수 있습니다. 이 문제를 해결하기 위해 수정된 코드 조각은 다음과 같습니다.
MainActivity
public class MainActivity extends Activity { private LocationListener mLocationListener = new LocationListener() { // ... }; @Override protected void onCreate(Bundle savedInstanceState) { // ... LocationManager mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, mLocationListener); } }
Manifest
적절한 권한이 선언되었는지 확인하세요. 매니페스트에서 파일:
네트워크 기반 위치만
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
GPS 기반 위치만
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
위 내용은 Android의 네트워크 공급자를 사용하여 오래된 위치 좌표를 얻는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!