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.