2012-02-15 53 views
5

Tôi đang tạo một ứng dụng bật BẬT và TẮT màn hình bằng cảm biến tiệm cận. Mã vùng lân cận kết thúc, nhưng tôi gặp sự cố khi sử dụng các nút điều khiển màn hình.Android Java: Tắt màn hình

Tôi đã đọc rằng tôi nên sử dụng,

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
manager.goToSleep(int amountOfTime); 

Đối với đó, tôi cần phải cấp quyền đặc biệt để làm cho nó hoạt động, nhưng tôi đã không tìm ra cách để làm điều đó.

Ngoài ra, tôi đã đọc về việc thay đổi độ sáng màn hình

WindowManager.LayoutParams params = getWindow().getAttributes(); 
      params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON; 
      params.screenBrightness = 0; 
      getWindow().setAttributes(params); 

Nhưng cách này chỉ tắt màn hình trên ứng dụng của tôi; nó không hoạt động nếu ứng dụng của tôi đang chạy ở chế độ nền.

Tôi cũng đã đọc về việc sử dụng Wakelock (i sử dụng chúng để đánh thức điện thoại của tôi từ màn hình-off), nhưng khi

PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag"); 
wl.acquire(); 
wl.release(); 

Nhưng khi tôi làm điều đó, không có gì xảy ra.

Có cách nào khác để làm điều đó không?

+0

Xem http://stackoverflow.com/questions/3643907/putting-the-system-to-sleep-on-android –

+0

Thank, nhưng có vẻ như vấn đề đã không được giải quyết có – Bertrand

+0

@ Ngồi: Làm thế nào bạn đã giải quyết được điều này ? – astuter

Trả lời

1

Bạn cần phải cung cấp cho ứng dụng của bạn đủ quyền hạn để thực hiện điều đó:

Thêm <uses-permission android:name="android.permission.DEVICE_POWER" /> để Manifest của bạn bên trong <manifest> Tag

Nếu bạn muốn giữ màn hình của bạn về việc sử dụng này, theo đề nghị của Dianne Hackborn trên Google Plus: KeepScreenOn

+0

Cảm ơn bạn đã trả lời. Tôi đã đặt quyền đó trong tệp kê khai, nhưng vì đó là quyền cấp 2, chúng tôi cần có quyền cụ thể (Hệ thống) để sử dụng nó. Đó là những gì tôi đã gọi là "quyền đặc biệt", xin lỗi tôi đã giải thích nó một cách rất xấu. – Bertrand

Các vấn đề liên quan