Etkin bir uygulama için Wear OS, kullanıcının kol saatini artık kullanmadığında düşük güç moduna geçme işlemini otomatik olarak yapar. Buna sistem ambiyans modu denir. Kullanıcı belirli bir zaman dilimi içinde saatle tekrar etkileşimde bulunursa Wear OS, kullanıcıyı uygulamaya kaldığı yerden geri getirir.
Belirli kullanım durumlarında (örneğin, koşu sırasında nabız ve tempoyu görmek isteyen bir kullanıcı) düşük güçlü ambiyans modunda nelerin görüntüleneceğini de kontrol edebilirsiniz. Hem ambiyans hem de etkileşimli modlarda çalışan Wear OS uygulamalarına her zaman açık uygulamalar adı verilir.
Bir uygulamanın sürekli görünür olması pil ömrünü etkilediğinden, özelliği uygulamanıza eklerken bu durumun dikkate alınmasını sağlayın.
Projenizi yapılandırın
Ambiyans modunu desteklemek için şu adımları uygulayın:
- Projenizi Giyilebilir cihaz oluşturma ve çalıştırma sayfasındaki yapılandırmalara göre oluşturun veya güncelleyin.
- 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ını kullanmak için aşağıdakileri yapın:
-
Aşağıdaki örnekte gösterildiği gibi
AmbientLifecycleObserver.AmbientLifecycleCallback
arayüzünü uygulayın. Bu aşamada yöntemler boştur, ancak kılavuzun ilerleyen bölümlerinde, ambiyans moduna girmek ve bu moddan çıkmak için görselleştirmede yapmanız gereken değişiklikler hakkında ayrıntılı bilgi verilmektedir.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, etkinliğin yaşam döngüsü boyunca her zaman açık davranışın etkinleştirilmesini sağlamak içinonCreate()
uygulamasında veya Wear OS için Compose kullanılıyorsa üst düzey kompozit düzende kullanılır.Kotlin
private val ambientObserver = AmbientLifecycleObserver(activity, callback) override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) lifecycle.addObserver(observer) // ... }
- Her zaman açık davranışı artık gerekli olmadığında
removeObserver()
yöntemini çağırarak gözlemciyi kaldırın. Örneğin bu yöntemi etkinliğinizinonDestroy()
yönteminde çağırabilirsiniz.
Ambiyans modunda görsel görünümü değiştirin
Varsayılan olarak, her zaman açık ayarı kullanılırken kol saati ambiyans moduna girdiğinde ekranın görünümü değişmez. AmbientLifecycleCallback
içindeki yöntemleri geçersiz kılarak bu davranışı değiştirebilirsiniz.
Güç tasarrufu yapmak için aşağıdakileri yapın:
- Daha az piksel aydınlatır ve ekranın büyük kısmını siyah bırakır. Ambiyans modunda yalnızca kritik bilgileri göstermeyi ve kullanıcı etkileşimli moda girdiğinde daha fazla ayrıntı sağlamayı düşünün.
- İçerikleri daha seyrek güncelleme sağlayacak şekilde düzenleyin. Örneğin, zamanlayıcıları en yakın saniye yerine en yakın dakikaya gösterin.
onEnterAmbient()
öğesine iletilenAmbientDetails
nesnesinde:deviceHasLowBitAmbient
ayarlandıysa mümkün olduğunda kenar yumuşatma özelliğini devre dışı bırakın.burnInProtectionRequired
ayarlandıysa görselleştirmeyi düzenli aralıklarla değiştirin ve düz beyaz alanlardan kaçının.
Wear OS için Compose'u kullanırken durumu güncellemek için bu geri çağırma yöntemlerini kullanmanızı öneririz. Böylece sistem, kullanıcı arayüzünüzü uygun şekilde yeniden oluşturabilir.
Bunun nasıl gerçekleştirilebileceğine ilişkin örnekler için aşağıdaki kaynakları inceleyin:
- Wear OS'te Compose için: GitHub'daki yazma temelli
AlwaysOnKotlin örneğine göz atın. Bu örnekte, Horologist kitaplığındaki
AmbientAware
öğesi kullanılır. - Görüntüleme sayısı için: GitHub'da görüntüleme sayısına dayalı AlwaysOnKotlin örneğine bakın.