Android 11'de, dikkatsiz uyku özelliği güç tasarrufu sağlayan bir özelliktir.
kullanıcı etkin olmama zaman aşımının ayarlanmasına olanak tanır.
FLAG_KEEP_SCREEN_ON
içeren pencerelerse
seviyelerde görünür veya uyanık kalma kilitleri
FULL_WAKE_LOCK
,
SCREEN_BRIGHT_WAKE_LOCK
veya
SCREEN_DIM_WAKE_LOCK
elde edilir.
PARTIAL_WAKE_LOCK
düzeyinde wakelock'lar bu özellikten etkilenmez.
Zaman aşımı süresi dolmadan kısa bir süre önce, kullanıcıya cihazla etkileşime geçmezse cihazın uykuya geçeceği konusunda uyarıda bulunan bir mesaj gösterilebilir.
Bu bağlamda kullanıcı etkinliği, bir kullanıcının
PowerManager#userActivity
(USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS
olmadan)
flag) aşağıdakileri içerir, ancak bunlarla sınırlı değildir:
- Dokunmatik ekranla etkileşimde bulunma
- Fiziksel bir düğmeye basılması
- Harici bir aksesuardan gelen etkinlikleri (örneğin, bağlı klavye, Bluetooth uzaktan kumandası, IR uzaktan kumandası)
- Sesli etkileşim
- One Touch Play gibi belirli HDMI CEC mesajları alma
- Yeni bir yayınlama oturumu başlatma
Özelleştirme
Bu özellik etkinleştirildiğinde, kullanıcı belirli bir süre boyunca işlem yapmazsa cihazda ekranda bir uyarı gösterilir. Herhangi bir işlem yapılmazsa ekran kapanır. Özelliği özelleştirebilirsiniz. bu yapılandırma seçeneklerini kullanabilirsiniz.
Zaman aşımını yapılandırma
Zaman aşımını yapılandırmak için aşağıdaki öğeyi şurada güncelleyin:
frameworks/base/core/res/res/values/config.xml
:
config_attentiveTimeout
- Kullanıcının işlem yapmadığı varsayılan süreyi milisaniye olarak belirtir. Ardından, ekran kapanacaktır (ekran uyanık kalma kilitleri takılı olsa bile).
- Derleme zamanında ayarla.
- Değer
0
ileconfig_minimumScreenOffTimeout
arasındaysa cihazın uyanıştan kısa bir süre sonra ekranını kapatmasını önlemek için zaman aşımıconfig_minimumScreenOffTimeout
olarak ayarlanır. - Varsayılan:
-1
(Bu değer, bu özelliği devre dışı bırakır).
Varsayılan zaman aşımını geçersiz kılma
Varsayılan zaman aşımı ayarını geçersiz kılmak için aşağıdaki öğeyi güncelleyin.
Settings.Secure.ATTENTIVE_TIMEOUT
- Ayarlanırsa
config_attentiveTimeout
tarafından belirlenen varsayılan dikkatsiz uyku zaman aşımını geçersiz kılar. - Çalışma zamanında ayarlanabilir.
Uyarı görüntülenmeden önceki süreyi yapılandır
Süreyi yapılandırmak için aşağıdaki öğeyi şurada güncelleyin:
frameworks/base/core/res/res/values/config.xml
:
config_attentiveWarningDuration
- Şu süreden sonra ekran kapanmadan önce kullanıcıya bir uyarı mesajının gösterileceği süre: uzun süre etkin olmaması.
- Değer, ayarlanan dikkatsiz uyku zaman aşımının çok altında olmalıdır. Aksi takdirde uyarı iletişim kutusu sürekli gösterilir ve kapatılamaz.
- Varsayılan:
30000
(30 sn).
TvSettings'te zaman aşımı tercihlerini gösterme
Zaman aşımı tercihlerini göstermek için packages/apps/TvSettings/Settings/res/values/config.xml
'te aşağıdaki öğeyi güncelleyin:
config_show_standby_timeout
- Medya oynatma sırasında ekranın kapatılmasına izin veren bir tercih öğesinin gösterilip gösterilmeyeceğini belirtir.
- Varsayılan:
false
.
Uyarı kullanıcı arayüzü kaynakları
- Uyarı iletişim kutusunun düzeni şurada tanımlanır:
frameworks/base/packages/SystemUI/res/layout/inattentive_sleep_warning.xml
- İletişim kutusuna ilişkin aşağıdaki dizeler şurada tanımlanmıştır:
frameworks/base/packages/SystemUI/res/values/strings.xml
veframeworks/base/packages/SystemUI/res-product/values/strings.xml
. inattentive_sleep_warning_title
inattentive_sleep_warning_message
Derleme zamanı yapılandırmaları ve kaynakları, kaynak yer paylaşımlarıyla değiştirilebilir.
Uygulama
Aşağıdakileri kullanarak özelliği etkinleştirin.
- Varsayılan
config_attentiveTimeout
değerini geçersiz kılın. - AOSP
TvSettings
kullanıyorsanız: config_show_standby_timeout
değerini geçersiz kılarak özelliği ayarlardan devre dışı bırakın.Settings.Secure.ATTENTIVE_TIMEOUT
değerini ayarlayan kendi ayarlarınızı uygulayın.
Doğrulama
Özellik için CTS testleri aşağıda verilmiştir:
cts/hostsidetests/os/src/android/os/cts/InattentiveSleepTests.java
Örnekler ve kaynak
frameworks/base/packages/SystemUI/src/com/android/systemui/power/InattentiveSleepWarningView.java
. varsayılan uyarı kullanıcı arayüzü uygulamasını içerir.packages/apps/TvSettings
, özelliğin ayarlarda nasıl gösterileceğine dair bir örnek sağlar.
Manuel test durumu örneği
stay_on_while_plugged_in
Cihazın sağlık HAL'si, cihazda bir pil (battery_present
,true
) pil tüketimini ekranın kapatılmasını engeller.
adb shell settings put global stay_on_while_plugged_in 0
- Dikkatsiz kullanım nedeniyle uyku moduna geçme zaman aşımını, uyarı iletişim kutusu süresinden birkaç saniye daha uzun olacak şekilde ayarlayın.
adb shell settings put secure attentive_timeout 32000
- Bir videoyu oynatmaya başlayın (ekranı uyandırın).
- Uyku uyarısı iletişim kutusunun birkaç saniye sonra gösterildiğini doğrulayın.
- Ayarlanan zaman aşımı süresi dolduktan sonra ekranın kapandığını doğrulayın.