Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Siaga TV

Di Android 11, tidur lalai adalah fitur hemat daya yang memungkinkan waktu tunggu ketidakaktifan pengguna disetel setelah layar mati, bahkan jika jendela dengan FLAG_KEEP_SCREEN_ON terlihat atau wakelock level FULL_WAKE_LOCK , SCREEN_BRIGHT_WAKE_LOCK atau SCREEN_DIM_WAKE_LOCK ditahan. Wakelock dengan level PARTIAL_WAKE_LOCK tidak terpengaruh oleh fitur ini. Sesaat sebelum batas waktu berakhir, sebuah pesan dapat ditampilkan yang memperingatkan pengguna bahwa perangkat akan tidur jika mereka tidak berinteraksi dengan perangkat.

Dalam konteks ini, aktivitas pengguna merujuk pada apa pun yang memicu panggilan ke PowerManager#userActivity (tanpa tanda USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS ), termasuk namun tidak terbatas pada:

  • Berinteraksi dengan layar sentuh
  • Menekan tombol fisik
  • Peristiwa input dari aksesori eksternal (misalnya, keyboard yang terhubung, remote bluetooth, remote IR)
  • Interaksi suara
  • Menerima pesan HDMI CEC tertentu, seperti One Touch Play
  • Memulai sesi pemeran baru

Kustomisasi

Jika fitur ini diaktifkan, perangkat menampilkan peringatan pada layar setelah waktu tidak aktif pengguna yang ditentukan. Jika tidak ada tindakan yang diambil, layar akan mati. Anda dapat menyesuaikan fitur menggunakan opsi konfigurasi ini.

Mengonfigurasi batas waktu

Untuk mengonfigurasi waktu tunggu, perbarui elemen berikut di frameworks/base/core/res/res/values/config.xml :

  • config_attentiveTimeout
    • Menentukan waktu default dalam milidetik dari ketidakaktifan pengguna setelah layar mati (bahkan jika wakelock layar sudah siap).
    • Ditetapkan pada waktu pembuatan.
    • Jika nilainya antara 0 dan config_minimumScreenOffTimeout , batas waktu disetel ke config_minimumScreenOffTimeout untuk mencegah perangkat mematikan layarnya segera setelah bangun.
    • Default: -1 , yang menonaktifkan fitur ini.

Mengganti batas waktu default

Untuk mengganti setelan waktu tunggu default, perbarui elemen berikut.

  • Settings.Secure.ATTENTIVE_TIMEOUT
    • Jika disetel, mengganti waktu tunggu tidur lalai default yang disetel oleh config_attentiveTimeout .
    • Dapat disetel saat runtime.

Konfigurasi durasi sebelum peringatan muncul

Untuk mengonfigurasi durasi, perbarui elemen berikut dalam frameworks/base/core/res/res/values/config.xml :

  • config_attentiveWarningDuration
    • Berapa lama untuk menampilkan pesan peringatan kepada pengguna sebelum layar mati setelah pengguna tidak aktif dalam waktu lama.
    • Nilainya harus jauh di bawah batas waktu tidur lalai yang disetel, jika tidak, dialog peringatan akan terus muncul dan tidak dapat ditutup.
    • Default: 30000 (30-an).

Menampilkan preferensi waktu tunggu di TvSettings

Untuk menampilkan preferensi waktu tunggu, perbarui elemen berikut di packages/apps/TvSettings/Settings/res/values/config.xml :

  • config_show_standby_timeout
    • Apakah akan menampilkan item preferensi untuk memungkinkan mematikan layar selama pemutaran media.
    • Default: false .

Resource untuk UI peringatan

  • Tata letak dialog peringatan didefinisikan dalam frameworks/base/packages/SystemUI/res/layout/inattentive_sleep_warning.xml .
  • String dialog berikut ini ditentukan dalam frameworks/base/packages/SystemUI/res/values/strings.xml dan frameworks/base/packages/SystemUI/res-product/values/strings.xml .
    • inattentive_sleep_warning_title
    • inattentive_sleep_warning_message

Konfigurasi dan sumber daya waktu pembuatan dapat diubah dengan hamparan sumber daya.

Penerapan

Aktifkan fitur menggunakan berikut ini.

  1. Ganti config_attentiveTimeout default.
  2. Jika menggunakan AOSP TvSettings :
    • Nonaktifkan fitur dalam pengaturan dengan config_show_standby_timeout .
    • Terapkan pengaturan Anda sendiri yang mengatur Settings.Secure.ATTENTIVE_TIMEOUT .

Validasi

Tes CTS untuk fitur ini ada di cts/hostsidetests/os/src/android/os/cts/InattentiveSleepTests.java .

Contoh dan sumber

  • frameworks/base/packages/SystemUI/src/com/android/systemui/power/InattentiveSleepWarningView.java berisi implementasi UI peringatan default.
  • packages/apps/TvSettings memberikan contoh bagaimana mengekspos fitur dalam pengaturan.

Contoh kasus uji manual

  1. Pastikan pengaturan pengembang stay_on_while_plugged_in tidak aktif jika HAL kesehatan perangkat melaporkan bahwa perangkat memiliki baterai ( battery_present true ) karena ini mungkin mencegah fitur mematikan layar.
    adb shell settings put global stay_on_while_plugged_in 0

  2. Setel batas waktu tidur lalai menjadi beberapa detik lebih lama dari durasi dialog peringatan.
    adb shell settings put secure attentive_timeout 32000
  3. Mulai putar ulang video (untuk memperoleh kunci wakel layar).
  4. Pastikan dialog peringatan tidur muncul setelah beberapa detik.
  5. Pastikan layar mati setelah batas waktu yang ditetapkan berakhir.