Jawaban:
Ini mengharuskan Anda memberi aplikasi Anda izin tambahan, dan sangat mudah untuk memperkenalkan bug di mana Anda secara tidak sengaja tetap memegang kunci layar dan membiarkan layar menyala.
Jauh, jauh lebih baik menggunakan bendera jendela FLAG_KEEP_SCREEN_ON, yang dapat Anda aktifkan di jendela aktivitas Anda onCreate()seperti ini:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Ini akan memastikan bahwa layar tetap menyala saat jendela Anda berada di latar depan, dan hanya saat berada di latar depan. Ini sangat menyederhanakan kasus penggunaan umum ini, menghilangkan semua juggling yang perlu Anda lakukan saat aplikasi Anda bertransisi antar status.
Pertanyaan ini Sudah Jawaban Hebat oleh @hackbod!
Saya Menjawab Pertanyaan ini dengan Dua Solusi Tambahan!
Solusi yang Ada:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Solusi Tambahan:
kita bisa menggunakan keepScreenOn
1. implementation menggunakansetKeepScreenOn() in java code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// or any View (in case generated programmatically )
View v = getLayoutInflater().inflate(R.layout.driver_home, null);
v.setKeepScreenOn(true);
setContentView(v);
}
Docs http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. Menambah keepScreenOnkexml layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true" >
Docs http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
Catatan (Beberapa Poin Berguna):
1. Tidak masalah yang keepScreenOnharus digunakan di Main/Root/Parent View atasnya dapat digunakan dengan apa pun child viewakan berfungsi Seperti halnya bekerja diParent view
2. Satu-satunya masalah adalah bahwa View's Visibility must be visiblejika tidak, itu tidak akan berhasil!
v.setKeepScreenOn(true);tampaknya menjadi satu-satunya cara untuk melakukannya untuk bingkai dialog layar penuh
Solusi lain adalah menambahkan android:keepScreenOn="true"( dokumentasi ) ke tampilan yang perlu tetap mengaktifkan layar.
Memungkinkan kontrol yang lebih terperinci dalam hal tampilan mana yang tetap aktif dan mana yang tidak. Anda bahkan dapat mereferensikan setelan dari file sumber daya dengan cara ini.