2012-07-05 60 views

Trả lời

19

bạn phải khai báo này sử dụng-phép trên AndroidManifest:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

Và trong mã hoạt động của bạn:

PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE); 
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock"); 
wakeLock.acquire(); 

Chỉ cần nhớ để phát hành khóa này khi ứng dụng của bạn đang bị tạm dừng hoặc bị phá hủy bằng cách thực hiện này:

wakeLock.release(); 

Thông thường, bạn nên gọi số có được phương pháp bên trong onResume() hoạt động của bạn và phương pháp phát hành trong onPause(). Bằng cách này, chúng tôi đảm bảo rằng đơn đăng ký của chúng tôi vẫn hoạt động tốt trong trường hợp bị tạm dừng hoặc tiếp tục.

+3

FULL_WAKE_LOCK đã bị phản đối từ API 17, FLAG_KEEP_SCREEN_ON bây giờ là con đường để đi :) –

4
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

trong androidmanifest:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 

HOẶC

Thực hiện theo this link

20

Một cách khác để giữ cho màn hình khóa trên mà không cần phải yêu cầu sự cho phép trong manifiest là:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Bạn có đang thực hiện quy trình tải dài trong chuỗi giao diện người dùng không? Một cái gì đó không có vẻ đúng - nếu quá trình này quá lâu đến nỗi thời gian khóa màn hình và quá trình của bạn kết thúc, có lẽ nó cần phải đi trong một dịch vụ nền.

+0

Làm thế nào tôi có thể vô hiệu hóa cờ này một lần nữa nếu tôi muốn? –

+1

Hãy thử getWindow(). ClearFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); – barry

0

một lựa chọn thú vị mà không được đề cập nhưng là phương pháp

View#setKeepScreenOn(boolean onOff) 

. Điều này thực sự có thể được sử dụng động tại bất kỳ thời điểm nào trong thời gian chạy của ứng dụng, ví dụ: để thiết lập chế độ màn hình tùy thuộc vào tình trạng ứng dụng

-1

Go với mã bảo vệ chủ chốt làm việc của mình một cách hoàn hảo,

Chỉ Dán mã vào onCreate Phương pháp trong tập tin MainActivity của bạn Và Permission trong file manifest android

0

các dòng sau cho phép điện thoại của bạn sẽ được ON khi ứng dụng trong foreground

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

các hướng dẫn sau đây cho phép chúng tôi để vô hiệu hóa t anh khóa màn hình khi nhấn nút khóa.KeyguardLock lớp đã bị phản đối ở mức API 13

/*onCreate*/ 
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); // Deprecated :/ 
lock.disableKeyguard(); 

Và trong biểu hiện của bạn:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
Các vấn đề liên quan