Arka Plan Konum Limitleri

Android 8.0 (API düzeyi 26), güç tüketimini azaltmak amacıyla bir uygulamanın arka planda çalışırken kullanıcının geçerli konumunu alma sıklığını sınırlar. Bu koşullar altında, uygulamalar her saatte yalnızca birkaç kez konum güncellemelerini alabilir.

Not: Bu sınırlamalar, uygulamanın hedef SDK sürümüne bakılmaksızın Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran cihazlarda kullanılan tüm uygulamalar için geçerlidir.

Uygulamanız arka planda çalışırken gerçek zamanlı uyarılara veya hareket algılamaya dayanıyorsa bu konum alma davranışı özellikle göz önünde bulundurulmalıdır.

Ön plan uygulama davranışı korunur

Android 8.0 (API düzeyi 26) çalıştıran bir cihazda ön planda bir uygulama varsa konum güncelleme davranışı Android 7.1.1 (API düzeyi 25) ve önceki sürümlerdekiyle aynıdır.

Uyarı: Uygulamanız uzun bir süre içinde neredeyse gerçek zamanlı konum güncellemeleri alıyorsa cihazın pil ömrü önemli ölçüde kısalır.

Uygulamanızın konum davranışını ayarlama

Uygulamanız nadiren konum güncellemeleri alıyorsa arka planda çalışmaya yönelik kullanım alanlarının başarılı olup olmayacağını düşünün. Bu durumda, aşağıdaki işlemlerden birini gerçekleştirerek konum güncellemelerini daha sık alabilirsiniz:

  • Uygulamanızı ön plana taşıyın.
  • startForegroundService() yöntemini çağırarak uygulamanızda bir ön plan hizmeti başlatın. Bu tür bir ön plan hizmeti etkin olduğunda, bildirim alanında sürekli bir bildirim olarak görünür.

    Dikkat: Uygulamanız, Android 11 (API düzeyi 30) veya sonraki sürümleri çalıştıran bir cihazda arka planda çalışırken ön plan hizmeti başlatırsa kullanıcı, uygulamanıza ACCESS_BACKGROUND_LOCATION izni vermediyse uygulamanız konum bilgilerine erişemez. Daha fazla bilgi için ön plan hizmetleriyle ilişkili kullanımdayken kısıtlamalar hakkındaki kılavuzu inceleyin.

  • Geofencing API'nin, güç kullanımını en aza indirmek için optimize edilmiş GeofencingClient gibi öğelerini kullanın.
  • Daha hızlı konum güncellemesi isteyen ön plan uygulamaları varsa daha hızlı konum güncellemeleri alabilecek pasif konum dinleyici kullanın.

Not: Uygulamanızın, sık sık güncellemeler içeren konum geçmişine erişmesi gerekiyorsa FusedLocationProviderApi arayüzü gibi Çok kaynaklı Konum Sağlayıcı API öğelerinin toplu sürümünü kullanın. Uygulamanız arka planda çalışırken bu API, kullanıcının konumunu toplu olmayan API'ye göre daha sık alır. Bununla birlikte, uygulamanızın güncellemeleri her saatte yalnızca birkaç kez toplu olarak almaya devam ettiğini unutmayın.

Etkilenen API'ler

Arka plan uygulamalarındaki konum alma davranışındaki değişiklikler şu API'leri etkiler:

Çok Kaynaklı Konum Sağlayıcı (FLP)
  • Uygulamanız arka planda çalışıyorsa konum sistemi hizmeti, uygulamanız için yeni konumu saatte yalnızca birkaç kez hesaplar. Uygulamanız daha sık konum güncellemeleri istediğinde bile bu durum geçerlidir.

    Bununla birlikte, FLP'nin toplu sürümünü kullandığınızda uygulamanız toplu güncelleme aldıktan sonra daha sık konum geçmişine erişebilirsiniz. Bu güncelleme her saat yalnızca birkaç kez gerçekleşir.

  • Uygulamanız ön planda çalışıyorsa Android 7.1.1 (API düzeyi 25) ile karşılaştırıldığında konum örnekleme hızlarında herhangi bir değişiklik olmaz.
Coğrafi sınır çizme
  • Arka plan uygulamaları, coğrafi sınır çizme geçiş etkinliklerini Çok kaynaklı Konum Sağlayıcı'dan gelen güncellemelerden daha sık alabilir.
  • Bir coğrafi sınır çizme etkinliğinin ortalama yanıt verme süresi birkaç dakikada birdir.
GNSS Ölçümleri ve GNSS Gezinme Mesajları
  • Uygulamanız arka plandayken, GnssMeasurement ve GnssNavigationMessage tarayıcılarından çıkış almak için kaydedilmiş olan geri çağırmaların yürütülmesi durdurulur.
Konum Yöneticisi
  • Konum güncellemeleri arka plandaki uygulamalara saatte yalnızca birkaç kez sağlanır.

    Not: Uygulamanız Google Play Hizmetleri'nin yüklü olduğu bir cihazda çalışıyorsa bunun yerine Çok Kaynaklı Konum Sağlayıcı'yı (FLP) kullanmanız önemle tavsiye edilir.

Kablosuz Ağ Yöneticisi
startScan() yöntemi, arka plan uygulamaları için saatte yalnızca birkaç kez tam tarama gerçekleştirir. Bir arka plan uygulaması bu yöntemi kısa süre sonra tekrar çağırırsa WifiManager sınıfı, önceki taramanın önbelleğe alınmış sonuçlarını sağlar.