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:
- Projenizi Oluştur ve giyilebilir bir uygulama sayfası çalıştırın.
- 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:
-
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. } }
-
Bir
AmbientLifecycleObserver
oluşturun ve gözlemciyi kaydedin. Genellikle bu Wear OS için Compose kullanılırsaonCreate()
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) // ... }
- Her zaman açık olduğunda
removeObserver()
numarasını arayarak gözlemciyi kaldırın gerekli değildir. Örneğin, bu yöntemionDestroy()
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 nesneonEnterAmbient()
öğ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.