Rumah > Java > javaTutorial > Bagaimana untuk Mendapatkan Lokasi Semasa dengan Amanah Menggunakan Pengurus Lokasi Android?

Bagaimana untuk Mendapatkan Lokasi Semasa dengan Amanah Menggunakan Pengurus Lokasi Android?

Barbara Streisand
Lepaskan: 2024-11-26 19:18:11
asal
509 orang telah melayarinya

How to Reliably Get Current Location Using Android's Location Manager?

Cara Mendapatkan Lokasi Semasa Menggunakan Pengurus Lokasi Android

Mendapatkan lokasi semasa menggunakan Pengurus Lokasi Android boleh menjadi rumit. Walau bagaimanapun, adalah penting untuk memastikan fungsi ciri seperti navigasi dan perkhidmatan berasaskan lokasi. Kuncinya terletak pada pemahaman cara mengkonfigurasi Pengurus Lokasi dengan berkesan.

Dalam konteks ini, ramai pembangun menghadapi kesukaran apabila cuba memperoleh koordinat lokasi menggunakan penyedia NETWORK. Walaupun melaksanakan pelbagai coretan kod, ia sering berakhir dengan koordinat yang lapuk atau tiada hasil langsung. Dengan meneroka kod yang disediakan dalam soalan anda, kami akan menangani cabaran dan menyediakan penyelesaian yang komprehensif.

Memahami Kod

Kod yang disediakan terdiri daripada kelas Aktiviti ( MainActivity) dan kelas penjejakan (GPSTracker).

Kelas MainActivity memulakan GPSTracker dan mendapatkan semula maklumat lokasi, memaparkannya pada skrin.

Kelas GPSTracker mengendalikan kedudukan GPS dan kedudukan rangkaian. Ia menggunakan LocationManager untuk meminta kemas kini lokasi dan menyediakan kaedah untuk mendapatkan semula latitud dan longitud.

Menyelesaikan masalah Isu Penyedia RANGKAIAN

Masalah utama nampaknya adalah dengan kelas GPSTracker . Berikut ialah beberapa isu yang berpotensi dan pembetulannya:

  1. Meminta Kemas Kini Lokasi: Apabila menggunakan penyedia NETWORK, anda mesti meminta kemas kini lokasi secara eksplisit. Untuk melakukan ini, tambahkan baris berikut:
locationManager.requestLocationUpdates(
  LocationManager.NETWORK_PROVIDER,
  MIN_TIME_BW_UPDATES,
  MIN_DISTANCE_CHANGE_FOR_UPDATES,
  this
);
Salin selepas log masuk
  1. Mentakrifkan LocationListener: Untuk mengendalikan kemas kini lokasi, buat objek LocationListener dan daftarkannya dengan LocationManager.
private final LocationListener mLocationListener = new LocationListener() {
  @Override
  public void onLocationChanged(final Location location) {
    // Update your location here
  }
};
Salin selepas log masuk
  1. Manifest Kebenaran: Pastikan kebenaran lokasi yang diperlukan ditambahkan pada fail AndroidManifest.xml anda:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Salin selepas log masuk
  1. Ketersediaan Pembekal Lokasi: Sahkan jika pembekal NETWORK boleh didapati oleh menggunakan:
boolean isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Salin selepas log masuk

Pendekatan Alternatif untuk Lokasi RANGKAIAN

Jika pendekatan di atas tidak berkesan, anda boleh mencuba kaedah alternatif menggunakan Lokasi Bersatu API Pembekal:

LocationServices.FusedLocationApi.requestLocationUpdates(
  mGoogleApiClient,
  mLocationRequest,
  mLocationListener,
  Looper.getMainLooper()
);
Salin selepas log masuk

Kaedah ini menggabungkan berbilang sumber lokasi untuk menyediakan lokasi yang terbaik ketepatan.

Dengan pengubahsuaian ini, anda boleh memastikan pembekal NETWORK menyediakan kemas kini lokasi yang tepat dalam apl anda.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Lokasi Semasa dengan Amanah Menggunakan Pengurus Lokasi 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