Saatin küçük, bir bakışta göz atılabilen form faktörü, Wear OS'i uygulamalar için ideal bir platform haline getiriyor kullanıcı konumunu kaydetmesi, bildirmesi ve yanıtlaması gerekir. Örnek olarak, kullanıcılara mesafe, hız ve yönlerle ilgili anlık güncellemeler sağlayan uygulamalar, veya kullanıcılara belirli bir sırada teşekkür ederiz.
Daha fazla bilgi için Konumu algılayan uygulamalar derleme başlıklı makaleyi inceleyin.
Bazı kol saatlerinde, konum verilerini telefon olmadan toplayan ve bağlı bir telefon olmasını gerektirir. Bir saat uygulamasında konum verilerini istediğinizde sistemi en çok kullanarak konumu telefondan veya saatten alır verimli bir yöntemdir. Böylece, kol saatinde GPS sensörü olmasa bile konum bilgisini almak.
Konum verisi alma işleminin pil ömrü üzerindeki etkisini azaltmak için
telefon etmek
setPriority()
şu değerle
PRIORITY_BALANCED_POWER_ACCURACY
.
Farklı öncelik ayarları
çipleri farklı şekilde optimize edebilirsiniz.
Mümkün olduğunda, artık konum sormamaya çalışarak pili koruyun
dakikada bir defadan fazla
setInterval()
.
Aşağıdaki bölümlerde açıklandığı gibi, uygulamanızın kayıpları gidermek için Konum verileri, sensörsüz bir kol saatinin telefonla bağlantısı kesildiğinde.
Yönteminizi seçin
Wear OS uygulamalarına konum verilerini sağlamanın birkaç yolu vardır. Şunları yapabilirsiniz: Fused Location Provider (FLP) veya Wear Sağlık Hizmetleri (WHS). FLP Google Play Hizmetleri API'si.
FLP'yi aşağıdaki durumlarda kullanın:
- Konum verilerini anında görmek istersiniz; örneğin, park edilmiş bir arabanın konumu.
- Konumun sürekli olarak girilmesini istersiniz ancak konum geçmişine ihtiyacınız yoktur.
WHS'yi aşağıdaki durumlarda kullanın:
- Diğer sensörlerden veri almak istiyorsanız veya diğer sensörlerden veri istemeniz daha iyi anlamanızı sağlayabilir.
- Uygulamanız, konum verilerini takip etmesi gereken bir antrenman veya egzersiz uygulaması ne olduğuna karar vermelisiniz.
iPhone'larla eşlenen kol saatleri için bkz. iPhone'larla eşlenen kol saatleri için konum verileri.
Çok Kaynaklı Konum Sağlayıcısı'nı kullanma
Saatte konum verilerini almak için
FusedLocationProviderClient
.
FLP, telefondaki konum verilerini kullanabilir. Daha fazla bilgi için bkz.
Konum hizmetleri istemcisi oluşturma
Konum güncellemesi isteğinde bulunma ve bir konumu sürekli olarak izleme hakkında bilgi için Kullanıcının konumuna ilişkin Konum güncellemesi isteme başlıklı makaleye göz atın.
Yerleşik GPS'i algıla
Bir kullanıcı, yerleşik GPS sensörü olmayan bir kol saatiyle koşuya çıkıp çıkıyorsa eşlenen telefonu arkanıza alırsak saat uygulamanız CANNOT TRANSLATE bağlı cihaz. Uygulamanızda bu durumu algılayıp kullanıcıyı şu konuda uyarın: konum özellikleri kullanılamıyor.
Saatte yerleşik GPS sensörü olup olmadığını öğrenmek için
hasSystemFeature()
yöntemindeki
PackageManager.FEATURE_LOCATION_GPS
.
Aşağıdaki kod, bir aktivite başlattığınızda saatin yerleşik GPS sensörü olup olmadığını algılar:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) if (!hasGps()) { Log.d(TAG, "This hardware doesn't have GPS.") // Fall back to functionality that doesn't use location or // warn the user that location function isn't available. } } private fun hasGps(): Boolean = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS)
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); if (!hasGps()) { Log.d(TAG, "This hardware doesn't have GPS."); // Fall back to functionality that doesn't use location or // warn the user that location function isn't available. } ... } private boolean hasGps() { return getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); }
Bağlantı kesme etkinliklerini yönetme
Saatin yerleşik GPS sensörü yoksa ve telefonla bağlantısı kesilirse saat konum veri akışını kaybeder. Uygulamanız sürekli bir veri akışı bekliyorsa uygulamanız bağlantı kesildiğini algılamalı, kullanıcıyı uyarmalı ve işlevinde bir azalma var.
Mobil cihazlarda olduğu gibi,
FusedLocationProviderClient.requestLocationUpdates()
, sınava girmek için
LocationCallback
veya bir
PendingIntent
.
Bu özelliklerin ikisi de konum bilgilerini ve
LocationAvailability
durumu.
LocationCallback
seçeneği kullanılırken geçersiz kıl
Kullanılabilirlik durumuyla ilgili güncellemeleri almak için onLocationAvailability()
.
PendingIntent
seçeneği ve
Intent
döndürüldü, konumu çıkarın
stok durumunu Intent
LocationAvailability.extractLocationAvailability(Intent)
yöntemidir.
Herkese açık kullanıcı adı konumu bulunamadı
GPS sinyali kaybolduğunda, GPS sinyalinin diğer bilinen kullanıcının kol saati. Bilinen son konumu almak, GPS sabitlemesi ve saatin yerleşik GPS'i olmadığından ve telefon. Daha fazla bilgi için bkz. Bilinen son konumu alma.
Toplu çağrılarla konumu boşalt
Toplu çağrılar kullanıyorsanız
flushLocations()
Ekran tekrar açıldığında veya ambiyans modundan şuna döndüğünde:
toplu konumları kayıtlı tüm LocationListeners
konumlarına hemen döndürür,
LocationCallbacks
ve Pending Intents
.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Pil için konumu optimize etme
- Bildirim oluşturma {:#bildirim}
- Kullanıcıların ne zaman etkinlik başlattığını veya bitirdiğini algılama