Rumah > Java > javaTutorial > Mengapa Saya Mendapat Koordinat Lokasi Lapuk Menggunakan Pembekal Rangkaian Android?

Mengapa Saya Mendapat Koordinat Lokasi Lapuk Menggunakan Pembekal Rangkaian Android?

Mary-Kate Olsen
Lepaskan: 2024-11-24 13:17:12
asal
558 orang telah melayarinya

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

Cara Mendapatkan Lokasi Semasa dalam Android

Penerangan Isu

Memperoleh koordinat lokasi semasa melalui pembekal RANGKAIAN sistem lokasi Android terbukti mencabar bagi pengguna , kerana mereka secara konsisten menerima koordinat lapuk dan bukannya koordinat semasa. Walaupun melaksanakan berbilang kelas sedia ada, isu ini berterusan.

Coretan Kod

MainActivity

public class MainActivity extends Activity {
    GPSTracker mGPS = new GPSTracker(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // ...
        if (mGPS.canGetLocation) {
            mGPS.getLocation();
            // ...
        } else {
            // ...
        }
    }
}
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

Dicadangkan Penyelesaian

Isu ini boleh dikaitkan dengan kemas kini lokasi yang tidak mencukupi. Berikut ialah coretan kod yang diubah suai untuk menyelesaikannya:

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);
    }
}
Salin selepas log masuk

Manifest

Pastikan kebenaran yang sesuai diisytiharkan dalam Manifest fail:

Lokasi Berasaskan Rangkaian Sahaja

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Salin selepas log masuk

Lokasi Berasaskan GPS Sahaja

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Mendapat Koordinat Lokasi Lapuk Menggunakan Pembekal Rangkaian Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan