Câu trả lời:
Điều này yêu cầu bạn cấp cho ứng dụng của mình một quyền bổ sung và rất dễ phát sinh lỗi khi bạn vô tình giữ khóa thức và do đó để màn hình bật.
Tốt hơn là sử dụng cờ cửa sổ FLAG_KEEP_SCREEN_ON, bạn có thể bật cờ này trên cửa sổ hoạt động của mình trong cửa sổ onCreate()như sau:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Điều này sẽ đảm bảo rằng màn hình vẫn sáng trong khi cửa sổ của bạn ở phía trước và chỉ khi nó ở phía trước. Nó đơn giản hóa đáng kể trường hợp sử dụng phổ biến này, loại bỏ bất kỳ sự xáo trộn nào bạn cần làm khi ứng dụng của bạn chuyển đổi giữa các trạng thái.
Câu hỏi này đã có câu trả lời tuyệt vời bởi @hackbod!
Tôi đang trả lời câu hỏi này với hai giải pháp bổ sung!
Giải pháp hiện tại:
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
Các giải pháp bổ sung:
chúng ta có thể sử dụng keepScreenOn
1. implementation sử dụngsetKeepScreenOn() 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);
}
Tài liệu http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. Thêm keepScreenOnvàoxml 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" >
Tài liệu http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
Lưu ý (Một số điểm hữu ích):
1. Nó không quan trọng cái gì keepScreenOnnên được sử dụng Main/Root/Parent View nó có thể được sử dụng với bất kỳ cái nào child viewsẽ hoạt động Cũng giống như nó hoạt động trongParent view
2. Điều Chỉ có vấn đề là View's Visibility must be visiblekhôn ngoan khác nó sẽ không hoạt động!
v.setKeepScreenOn(true);dường như là cách duy nhất để thực hiện điều đó đối với phân mảnh hộp thoại toàn màn hình
Một giải pháp khác là thêm android:keepScreenOn="true"( tài liệu ) vào các dạng xem cần giữ cho màn hình luôn sáng.
Cho phép kiểm soát chi tiết hơn một chút về chế độ xem nào ở trên và chế độ nào không. Bạn thậm chí có thể tham chiếu cài đặt từ tệp tài nguyên theo cách này.