Yaklaşık konum al

Uygulama geliştiricilerin, kullanıcı gizliliğine saygı göstermek için yalnızca yaklaşık konum izinleri istemesi önerilir. Yaklaşık olarak yaklaşık konum alınması gereken uygulamalar, hızlı olduğu ve daha az güç tükettiği için genellikle çok kaynaklı ağ konumunu (FLP) kullanır. Android tabanlı mobil cihazlarla karşılaştırıldığında, otomotiv uygulamalarındaki ağ konumu daha zor olabilir. İki Android API'si kullanabilirsiniz:

  • LocationManager API, tercih edilen konum sağlayıcısını açık bir şekilde tanımlamak için requestLocationUpdates kullanmanızı gerektirir.

  • Google Play Services API, FusedLocationProviderClient'te konumla çalışmanız için daha basit bir yol sunar.

Birçok otomotiv uygulaması, LocationManager yerine Google Play Services API'den alınan FLP'yi kullanır. FLP, aracın ihtiyaç duyduğu konum isteği kriterleri ve politikalarına (güç ve doğruluk) göre en uygun konum sağlayıcıyı seçer.

Bunun yerine, android.permission.ACCESS_FINE_LOCATION izinlerini kullanan ince konumlar için NETWORK_PROVIDER'i ve GPS_PROVIDER'i açıkça isteyip kullanmayı tercih edebilirsiniz. Daha önce yalnızca Google Play Services API üzerinden erişilebilen FUSED_PROVIDER, Android 12 (API düzeyi 31) ve sonraki sürümlerde LocationManager için konum sağlayıcısı olarak kullanılabiliyor. FLP uygulamasını FusedLocationProvider.java sayfasında görebilirsiniz.

GPS_PROVIDER kullanımı yalnızca genel izin hakları ile de kullanılabilir (çerçeve, beklentilere uyum sağlamak için doğruluğu yapay olarak düşürür), genel kullanılabilirlik yetersizdir ve yaklaşık konumu elde etmek genellikle daha yavaş olduğundan Android telefonları hedefleyen geliştiriciler için bu pek bir anlam ifade etmez.

Otomotivde ağ konumu

Android telefonlarda kullanılan NETWORK_PROVIDER (Google Mobil Hizmetleri ile), konumu yakındaki baz istasyonlarına, kablosuz erişim noktalarına ve Bluetooth (BT) işaretçilerine göre belirler. Bu nedenle NETWORK_PROVIDER için veri bağlantısı gerekebilir.

Otomotiv uygulamaları için cihaz kısıtlamaları farklıdır. G genel navigasyon uydu sistemi (GNSS) genellikle açık olduğundan artan güç ve pil kullanımı nedeniyle herhangi bir ceza uygulanmaz. Sonuç olarak, IVI çalışma süresi tehlikeye girmez. Sunucularımız arasındaki veri alışverişini en aza indirmek için çaba gösteriyoruz.

Bu nedenle birçok uygulama, konum isteği kriterlerini/politikalarını (yani güç ve doğruluk) en iyi şekilde karşılayabilen konum sağlayıcıyı kullanarak akıllı işi otomatik olarak yaptığı için birçok uygulama doğrudan LocationManager yerine Play API'den FLP kullanır.

Mobil cihazlardan farklı olarak araçlar nadiren bir yerden diğerine atlıyor. Aracın konumu çoğu zaman kaputun altında bilinir.

Ağ konumu sağlayıcı (NLP)

Çoğu araç, hücre kimliği (ve sinyal gücü) hakkında gerekli bilgileri almak için gerekli telefon API'lerini uygulamaz. Sonuç olarak, veri kullanımını en aza indirdiğimiz için NLP'nin fazladan işlevsel bir uygulaması sağlanmamaktadır.

Çok kaynaklı konum sağlayıcı

Mobil FLP, ağ ve GPS sağlayıcılarını uygun şekilde akıllıca kullanmanın yanı sıra, konumların kalitesini daha da artırmak için diğer sensörlerden gelen bilgileri birleştirir. Öte yandan, Automotive FLP'nin mevcut uygulaması, yukarıda belirtilen varsayımlardan yararlanır ve temel kaynak olarak GPS_PROVIDER daima kullanılır. GNSS'deki konumları değiştirerek gerektiğinde daha fazla yanlışlık olması için bazı hataları ekler. Örneğin, bir müşteriye yaklaşık konum sağlandığında.

Bu nedenle, çok az sayıda örnekte ilk konumun kullanılabilir olması için normalden daha uzun bir süre olabilir. Örneğin, bir araç ilk kez veya daha kesin ifade etmek gerekirse konum alt sistemi kullanıldığında ya da araç çekildikten sonra.

Mobil ve otomotiv kullanımlarını hedefleyecek uygulamalar tasarlama

Daha yüksek hassasiyet gerektirmeyen mobil ve otomotiv cihazlarını hedefleyen uygulamalar için android.permission.ACCESS_COARSE_LOCATION yalnızca istekte bulunun ve mümkün olduğunda FLP kullanmaya devam edin. Alternatif olarak, GPS_PROVIDER ürününü doğrudan aynı izinlerle kullanabilirsiniz. Çerçeve, API beklentileriyle uyum sağlamak için temel GNSS konumunun kesinliğini düşürür. Daha fazla bilgi edinmek için Konum izinleri isteme başlıklı makalenin Doğruluk bölümünü inceleyin.

Ayrıca bu uygulamalar, android.hardware.location.network özelliğini manifest dosyalarında isteğe bağlı olarak açıkça beyan etmelidir. Örnek:

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

Bu yaklaşım, çeşitli sektörlerdeki cihazlarla maksimum uyumluluğu ve dolayısıyla, gerektiğinde konum almak için kod farklılığı olmadan maksimum uygulama kullanılabilirliğini sağlar.