>Java >java지도 시간 >Android의 네트워크 공급자를 사용하여 오래된 위치 좌표를 얻는 이유는 무엇입니까?

Android의 네트워크 공급자를 사용하여 오래된 위치 좌표를 얻는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-24 13:17:12515검색

Why Am I Getting Outdated Location Coordinates Using Android's Network Provider?

Android에서 현재 위치를 얻는 방법

문제 설명

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.