Arka Plan Konum Limitleri

Android 8.0 (API düzeyi 26), güç tüketimini azaltmak amacıyla, uygulama arka planda çalışırken kullanıcının mevcut konumunu ne sıklıkta alabileceğini sınırlandırır. Bu koşullarda uygulamalar, saatte yalnızca birkaç kez konum güncellemesi alabilir.

Not: Bu sınırlamalar, uygulamanın hedef SDK sürümünden bağımsız olarak 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.

Bu konum alma davranışı, uygulamanız arka planda çalışırken gerçek zamanlı uyarılara veya hareket algılamaya dayanıyorsa özellikle dikkate alınması gereken bir konudur.

Ön plan uygulama davranışı korunur

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

Uygulamanız uzun süre boyunca gerçek zamanlıya yakın konum güncellemeleri alırsa cihazın pil ömrü önemli ölçüde kısalır.

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

Uygulamanız sık konum güncellemesi almıyorsa arka planda çalışmayla ilgili kullanım alanlarının hiç başarılı olup olamayacağı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 getirin.
  • startForegroundService() çağrısını yaparak uygulamanızda bir ön plan hizmeti başlatın. Bu tür bir ön plan hizmeti etkin olduğunda bildirim alanında devam eden 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 bir ön plan hizmetini başlatırsa kullanıcı uygulamanıza ACCESS_BACKGROUND_LOCATION izni vermediği sürece konum bilgilerine erişemez. Daha fazla bilgi için ön plan hizmetleriyle ilişkili kullanım sırasındaki kısıtlamalar hakkındaki yönergeleri inceleyin.

  • Güç kullanımını en aza indirmek için optimize edilmiş GeofencingClient gibi Coğrafi Çit API öğelerini kullanın.
  • Ön planda daha hızlı konum güncellemesi isteyen uygulamalar varsa daha hızlı konum güncellemeleri alabilen pasif bir konum dinleyici kullanın.

Not: Uygulamanızın, sık sık güncelleme içeren konum geçmişine erişmesi gerekiyorsa FusedLocationProviderApi arayüzü gibi Fused Location Provider 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'den daha sık alır. Ancak uygulamanızın güncellemeleri yalnızca saatte birkaç kez toplu olarak aldığını unutmayın.

Etkilenen API'ler

Arka plan uygulamalarında konum alma davranışında yapılan değişiklikler aşağıdaki API'leri etkiler:

Çok kaynaklı konum sağlayıcı (FLP)
  • Uygulamanız arka planda çalışıyorsa konum sistemi hizmeti, uygulamanız için saatte yalnızca birkaç kez yeni bir konum hesaplar. Bu durum, uygulamanız daha sık konum güncellemesi isteğinde bulunsa bile geçerlidir.

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

  • Uygulamanız ön planda çalışıyorsa konum örnekleme hızlarında Android 7.1.1 (API seviyesi 25) ile karşılaştırıldığında herhangi bir değişiklik yoktur.
Coğrafi sınır çizme
  • Arka plan uygulamaları, Birleştirilmiş Konum Sağlayıcı'dan gelen güncellemelerden daha sık coğrafi sınır geçişi etkinlikleri alabilir.
  • Coğrafi sınırlama etkinliği için ortalama yanıt süresi yaklaşık birkaç dakikadır.
GNSS Ölçümleri ve GNSS Gezinme Mesajları
Konum Yöneticisi
  • Arka plan uygulamalarına konum güncellemeleri yalnızca saatte birkaç kez sağlanır.

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

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