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

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

Barbara Streisand
Barbara Streisandasal
2024-11-26 19:18:11441semak imbas

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
);
  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
  }
};
  1. Manifest Kebenaran: Pastikan kebenaran lokasi yang diperlukan ditambahkan pada fail AndroidManifest.xml anda:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  1. Ketersediaan Pembekal Lokasi: Sahkan jika pembekal NETWORK boleh didapati oleh menggunakan:
boolean isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

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()
);

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!

Kenyataan:
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