Uygulamanız, Google Play Hizmetleri konum API'lerini kullanarak kullanıcının cihazının bilinen konumu. Çoğu durumda kullanıcının mevcut konumu (genellikle bilinen son konuma eşdeğerdir) cihazın konumu.
Özel olarak, çok kaynaklı Konum Sağlayıcı'ya gidin. Çok kaynaklı Konum Sağlayıcı, Google Play Hizmetleri'ndeki konum API'lerinden biridir. Google temel konum teknolojisini yönetir ve basit bir API sağlar. Böylece, gereksinimleri yüksek doğruluk veya düşük güç gibi üst düzeyde belirtebilirsiniz. Ayrıca cihazın pil gücü kullanımını optimize eder.
Not: Uygulamanız arka planda çalışırken konuma erişim uygulamanın temel işlevi açısından kritik önem taşır ve açıklama metni eklemeniz gerekmez.
Bu derste, bir cihazın konumu için nasıl tek bir istekte bulunacağınız
cihazın
getLastLocation()
yöntemini kullanabilirsiniz.
Google Play Hizmetleri'ni kurun
Çok kaynaklı konum sağlayıcısına erişmek için uygulamanızın geliştirme projesinin Google Play hizmetlerini içerir. Google Play hizmetlerini indirme ve yükleme SDK aracılığıyla yapılandırma Yöneticisi'ni tıklayın ve kitaplığı projenize ekleyin. Ayrıntılı bilgi için Google Play'i Kurma Hizmetler.
Uygulama izinlerini belirleme
Özellikleri, konum hizmetlerini kullanan uygulamaların konum izni isteyebilir, bu özelliklerin kullanım alanlarına göre değişir.
Konum hizmetleri istemcisi oluştur
Etkinliğinizin onCreate()
yönteminde,
aşağıdaki kod snippet'inde gösterildiği gibi Fused Location Provider Client'ın bir örneğini oluşturun.
Kotlin
private lateinit var fusedLocationClient: FusedLocationProviderClient override fun onCreate(savedInstanceState: Bundle?) { // ... fusedLocationClient = LocationServices.getFusedLocationProviderClient(this) }
Java
private FusedLocationProviderClient fusedLocationClient; // .. @Override protected void onCreate(Bundle savedInstanceState) { // ... fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); }
Bilinen son konumu alma
Konum Hizmetleri istemcisini oluşturduktan sonra
bir kullanıcının cihazının bilinen son konumunu öğrenebilirsiniz. Uygulamanız
Bunlara bağlı olarak, çok erişimli konum sağlayıcısının
getLastLocation()
cihaz konum alma
yöntemini alabilirsiniz. Döndürülen konumun kesinliği
bu çağrı, uygulamanıza yerleştirdiğiniz izin ayarına göre belirlenir
aşağıdaki adımları izleyin:
konum izni isteme.
Bilinen son konumu istemek için şu numarayı arayın:
getLastLocation()
yöntemidir. Aşağıdaki kod snippet'i, isteği ve
yanıt:
Kotlin
fusedLocationClient.lastLocation .addOnSuccessListener { location : Location? -> // Got last known location. In some rare situations this can be null. }
Java
fusedLocationClient.getLastLocation() .addOnSuccessListener(this, new OnSuccessListener<Location>() { @Override public void onSuccess(Location location) { // Got last known location. In some rare situations this can be null. if (location != null) { // Logic to handle location object } } });
İlgili içeriği oluşturmak için kullanılan
getLastLocation()
yöntemi, Task
değerini döndürür
almak için kullanabileceğiniz
Location
bir enlem ve boylam koordinatlarına sahip nesne
coğrafi konum. Konum nesnesi, null
şu durumlardan biri söz konusudur:
- Konum, cihaz ayarlarında kapalı. Sonuç,
null
durumunda geçerlidir. Bu durum, konumun devre dışı bırakılması önbelleği de temizler. - Cihaz, konumunu hiçbir zaman kaydetmedi. Yeni bir veya fabrika ayarlarına geri yüklenmiş bir cihaz olabilir.
- Cihazdaki Google Play hizmetleri yeniden başlatıldı ve etkin değil yeniden başlatıldı. Bu durumu önlemek için yeni bir müşteri oluşturup konum güncellemelerini kendiniz isteyebilirsiniz. Daha fazla bilgi için Alma Konumu bölümüne bakın. Güncellemeler.
En iyi konum tahminini seçin
FusedLocationProviderClient
, cihazı almak için çeşitli yöntemler sunar.
konum bilgisi. Uygulamanızın özelliklerine bağlı olarak aşağıdakilerden birini seçin:
Kullanım alanı:
getLastLocation()
daha hızlı bir konum tahmini alır ve gerçekleşebilecek pil kullanımını en aza indirir. uygulamanızla ilişkilendirilir. Ancak başka bir müşteri aktif olarak konumu yakın zamanda kullandı.getCurrentLocation()
konum tutarlı bir şekilde daha güncel ve doğru olur. Ancak bu yöntem cihazda etkin konum hesaplamasının yapılmasına neden olabilirBu, mümkün olduğunda yeni bir konum elde etmek için önerilen yoldur ve Konum güncellemelerini başlatıp yönetmek gibi alternatiflerden daha güvenlidir kendiniz
requestLocationUpdates()
kullanın. UygulamanızrequestLocationUpdates()
, uygulamanız bazen yüksek miktarda veri tüketebilir konum kullanılamıyorsa veya istek doğru şekilde durdurulmamışsa güç yeni bir konum elde edebilirsiniz.
Ek kaynaklar
Android'de mevcut konumu getirme hakkında daha fazla bilgi için şu malzemeleri kullanabilirsiniz:
Örnekler
- Getirme sırasında en iyi uygulamaları gösteren örnek uygulama geçerli konum.