Her zaman açık uygulamalar ve sistem ambiyans modu

Wear OS, etkin bir uygulamada düşük güç moduna geçiş işlemini otomatik olarak gerçekleştiren kullanıcılar için uzun süre kullanıyor. Buna sistem ambiyans modu adı verilir. Kullanıcı etkileşimde bulunursa belirli bir zaman dilimi içinde kol saatini tekrar etkinleştirdiğinde, Wear OS kullanıcıyı geri dönüyorlar.

Belirli kullanım alanları için (örneğin, bir kullanıcı belirli bir işlem sırasında nabzı ve koşun-siz düşük güç ambiyans modunda nelerin gösterileceğini de kontrol edebilir. Çalışan Wear OS uygulamaları ambiyans ve etkileşimli modlarda her zaman açık uygulamalar olarak adlandırılır.

Bir uygulamayı sürekli görünür yapmak pil ömrünü etkiler. Bu nedenle, uygulamaya eklerken bu etkiyi göz önünde bulundurun. uygulamanıza ekleyin.

Projenizi yapılandırın

Ambiyans modunu desteklemek için şu adımları uygulayın:

  1. Projenizi Oluştur ve giyilebilir bir uygulama sayfası çalıştırın.
  2. Android manifest dosyasına WAKE_LOCK iznini ekleyin:
<uses-permission android:name="android.permission.WAKE_LOCK" />

Her zaman açık modunu etkinleştir

AmbientLifecycleObserver sınıfı için aşağıdaki adımları uygulayın:

  1. uygulayın AmbientLifecycleObserver.AmbientLifecycleCallback arayüzünü kullanın. Bu aşamada yöntemler boştur, ancak kılavuzun sonraki bölümlerinde hangi değişikliklerin Ambiyans moduna girmek ve moddan çıkmak için görselleştirmeyi yaptığınızdan emin olun.

    Kotlin

    val ambientCallback = object : AmbientLifecycleObserver.AmbientLifecycleCallback {
        override fun onEnterAmbient(ambientDetails: AmbientLifecycleObserver.AmbientDetails) {
        // ... Called when moving from interactive mode into ambient mode.
        }
    
        override fun onExitAmbient() {
        // ... Called when leaving ambient mode, back into interactive mode.
        }
    
        override fun onUpdateAmbient() {
        // ... Called by the system in order to allow the app to periodically
        // update the display while in ambient mode. Typically the system will
        // call this every 60 seconds.
        }
    }
  2. Bir AmbientLifecycleObserver oluşturun ve gözlemciyi kaydedin. Genellikle bu Wear OS için Compose kullanılırsa onCreate() veya üst düzey composable'da her zaman açık davranışın etkinlik yaşam döngüsü boyunca etkinleştirilmesini sağlar.

    Kotlin

    private val ambientObserver = AmbientLifecycleObserver(activity, callback)
    
    override fun onCreate(savedInstanceState: Bundle) {
      super.onCreate(savedInstanceState)
      lifecycle.addObserver(observer)
    
      // ...
    }
  3. Her zaman açık olduğunda removeObserver() numarasını arayarak gözlemciyi kaldırın gerekli değildir. Örneğin, bu yöntemi onDestroy() yöntemi etkinliği'ne dokunun.

Her zaman açık uygulamalar arka plana geçebilir

Sistem, Wear OS 5'ten itibaren her zaman açık uygulamaları şu tarihten sonra arka plana taşır: süre boyunca ambiyans modunda görünürler. Kullanıcılar şunları yapabilir: sistem ayarlarında zaman aşımını yapılandırın.

Her zaman açık uygulamanız devam eden bir kullanıcı göreviyle ilgili bilgileri görüntülüyorsa (ör. bir antrenman veya bir antrenman oturumu gibi durumlarda, görev tamamlanana kadar görünür. Bunu yapmak için OnContinue Activity API'yi kullanarak her zaman açık etkinliğinizle bağlantılı devam eden bir bildirim.

Sistemin devam eden etkinliği tanıması için, devam eden bildirimin dokunma amacı, şurada gösterildiği gibi her zaman açık etkinliğinizi işaret etmelidir: şu kod snippet'ini kullanabilirsiniz:

// Create a pending intent that point to your always-on activity
val touchIntent =
    PendingIntent.getActivity(
        context,
        0,
        Intent(context, MyAlwaysOnActivity::class.java),
        PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
    )

val notificationBuilder =
    NotificationCompat.Builder(this, CHANNEL_ID)
    // ...
    .setOngoing(true)

val ongoingActivity =
    OngoingActivity.Builder(
        applicationContext, NOTIFICATION_ID, notificationBuilder
    )
    // ...
    .setTouchIntent(touchIntent)
    .build()

ongoingActivity.apply(applicationContext)

notificationManager.notify(
    NOTIFICATION_ID,
    notificationBuilder.build()
)

Ambiyans modunda görsel görünümü değiştirin

Varsayılan olarak, her zaman açık ayarı uygulanırken ekran yeni bir görünüm oluşturabilirsiniz. Bu ayarı değiştirebilirsiniz geçersiz kılarak bir sonraki AmbientLifecycleCallback

Güç tasarrufuna yardımcı olmak için aşağıdakileri yapın:

  • Daha az sayıda piksel aydınlatılır ve ekranın büyük bir kısmı siyah bırakılır. Dikkatlice ambiyans modunda yalnızca önemli bilgileri gösteriyor ve daha fazla Kullanıcı etkileşimli moda girdiğinde ayrıntılandıracaktır.
  • İçeriklerinizi daha seyrek aralıklarla güncellenecek şekilde ayarlayın. Örneğin, zamanlayıcıları göster en yakın saniye yerine en yakın dakikaya ayarlayabilirsiniz.
  • AmbientDetails içinde nesne onEnterAmbient() öğesine aktarıldı:
    • deviceHasLowBitAmbient ayarlanmışsa mümkün olduğunda kenar yumuşatma özelliğini devre dışı bırakın.
    • burnInProtectionRequired ayarlanmışsa görselleştirmeyi değiştirin ve düz beyaz alanlardan kaçının.

Wear OS için Oluştur'u kullanırken aşağıdaki geri çağırma yöntemlerini kullanmanızı öneririz durumu güncellemek için kullanılır. Bu, sistemin Kullanıcı arayüzünü uygun şekilde.

Bunun nasıl yapılacağına ilişkin bir örnek için yazma tabanlı GitHub'da, AmbientAware kullanan alıştırma örneği Horology kütüphanesinden derlenebilir.