Mendapatkan lokasi sementara

Untuk menghormati privasi pengguna, developer aplikasi dianjurkan untuk hanya meminta informasi izin akses lokasi. Aplikasi yang memerlukan perkiraan posisi kasar biasanya menggunakan lokasi jaringan (FLP) karena cepat dan mengkonsumsi daya lebih sedikit.

Dibandingkan dengan perangkat seluler berbasis Android, lokasi jaringan di aplikasi otomotif bisa jadi lebih menantang. Anda dapat menggunakan dua Android API:

  • LocationManager API mengharuskan Anda secara eksplisit mengidentifikasi Google Cloud Platform.

  • Google Play Services API menawarkan cara yang lebih sederhana untuk bekerja menggunakan lokasi dengan pengenalan Penyedia Lokasi Gabungan (FLP).

Banyak aplikasi otomotif menggunakan FLP dari Google Play Services (GPS) API, bukan LM. FLP memilih penyedia lokasi yang optimal berdasarkan permintaan lokasi kriteria dan kebijakan (daya dan akurasi) yang dibutuhkan oleh kendaraan.

Anda juga dapat memilih untuk secara eksplisit meminta dan menggunakan NETWORK_PROVIDER di LM, serta GPS_PROVIDER untuk posisi terperinci, yang menggunakan android.permission.ACCESS_FINE_LOCATION izin akses. Di API 31, FUSED_PROVIDER, yang sebelumnya hanya dapat diakses melalui GPS API, kini tersedia sebagai penyedia lokasi untuk LM. Anda dapat melihat versi yang lebih sederhana penerapan FLP, di FusedLocationProvider.java

Meskipun Anda dapat menggunakan GPS_PROVIDER dengan hak izin umum saja, framework menurunkan akurasi secara artifisial agar sesuai dengan ekspektasi, tidak masuk akal bagi pengembang yang menargetkan ponsel Android karena secara keseluruhan ketersediaannya buruk dan sering kali lebih lambat untuk mendapatkan perkiraan posisi.

Lokasi jaringan di otomotif

NETWORK_PROVIDER yang digunakan di ponsel Android (dengan Layanan Seluler Google) diubah dari menentukan lokasi hanya berdasarkan menara BTS terdekat menjadi menggunakan titik akses Wi-Fi atau bahkan beacon Bluetooth (BT). Penggunaan NETWORK_PROVIDER mungkin memerlukan koneksi data.

Untuk aplikasi otomotif, batasan perangkat berbeda. Karena GNSS biasanya aktif, tidak ada penalti yang dikenakan karena peningkatan daya dan penggunaan baterai. Sebagai seorang sehingga waktu beroperasi IVI tidak disusupi. Kami berusaha untuk meminimalkan pertukaran data dengan server kami.

Oleh karena itu, banyak aplikasi menggunakan FLP dari Play API, bukan LM secara langsung sebagai FLP otomatis melakukan hal cerdas dengan menggunakan penyedia lokasi yang paling mampu memenuhi kriteria/kebijakan permintaan lokasi (yaitu daya dan akurasi) berdasarkan kap mesin.

Tidak seperti perangkat seluler, kendaraan jarang terlihat melompat dari satu tempat ke lain. Posisi kendaraan sering kali dikenal di balik kap mobil.

Penyedia lokasi jaringan

Sebagian besar kendaraan tidak mengimplementasikan API telepon yang diperlukan untuk mendapatkan informasi yang diperlukan pada ID Sel (dan kekuatan sinyal). Akibatnya, dan karena kita meminimalkan data penggunaan NLP tambahan tidak disediakan.

Penyedia lokasi gabungan

FLP seluler, di samping dengan cerdas menggunakan penyedia jaringan dan GPS sebagai yang sesuai, menggabungkan informasi dari sensor lain untuk kualitas lokasi. Implementasi FLP Otomotif saat ini di pihak lain memanfaatkan asumsi di atas dan menggunakan GPS_PROVIDER sebagai sumber dasar sepanjang waktu. Memalsukan posisi dari GNSS, menambahkan beberapa error agar menjadi lebih tidak akurat saat diperlukan. Misalnya, saat lokasi sementara diberikan kepada klien.

Dengan demikian, dalam kasus yang sangat jarang terjadi, bisa ada waktu yang lebih lama dari biasanya untuk posisi pertama yang tersedia. Misalnya, saat pertama kali sebuah kendaraan atau, lebih tepatnya, subsistem lokasinya digunakan atau setelah ditarik.

Desain aplikasi untuk menargetkan penggunaan seluler dan otomotif

Sebaiknya aplikasi yang menargetkan perangkat seluler dan otomotif yang tidak memerlukan kualitas permintaan presisi yang lebih tinggi android.permission.ACCESS_COARSE_LOCATION saja dan kembali menggunakan FLP jika tersedia. Atau, sebagai solusi terakhir, gunakan GPS_PROVIDER secara langsung dengan izin akses yang sama. Framework ini menurunkan presisi Posisi GNSS agar selaras dengan ekspektasi API. Untuk mempelajari lebih lanjut, lihat Akurasi.

Selain itu, aplikasi ini harus secara eksplisit mendeklarasikan android.hardware.location.network fitur opsional dalam manifesnya. Contoh:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

Pendekatan ini memastikan kompatibilitas maksimum dengan perangkat di berbagai vertikal dan, oleh karena itu, ketersediaan aplikasi maksimum tanpa perbedaan kode untuk mendapatkan posisi saat dibutuhkan.