2010-11-20 22 views
8

Làm cách nào để tắt trình bảo vệ phím khi bộ thu phát được kích hoạt bởi screen_on, để khi người dùng nhìn thấy một hoạt động mà tôi đã bắt đầu đằng sau nó? (Các hoạt động đang chạy đã ...)Làm thế nào để vô hiệu hóa Keyguard và hiển thị một hoạt động cho người dùng khi người nhận SCREEN_ON được kích hoạt?

Tôi đã cố gắng đoạn mã sau từ một máy thu phát sóng gây ra bởi màn hình tắt ...

KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
myLock = myKeyGuard.newKeyguardLock(); 
myLock.disableKeyguard(); 

Nó dường như không có tác dụng mặc dù là nó Là. Khi bật màn hình lên, tôi vẫn phải mở khóa bàn phím trên điện thoại theo cách thủ công để tiết lộ hoạt động đằng sau nó.

+0

Tôi đã gặp một số mã đã sử dụng exitKeyguardSecurely() ngoài việc này. Tôi đã không thể làm cho nó hoạt động được tuy nhiên vì vậy tôi bây giờ thiết lập cờ FLAG_DISMISS_KEYGUARD cho hoạt động của tôi. – Ryan

+0

Ryan, bạn có thể vui lòng chia sẻ mã của bạn không. Tôi cũng làm việc như vậy. – Manikandan

Trả lời

1

Tôi nghĩ rằng tôi đã tìm ra những gì tôi đã làm sai. Có vẻ như đó chỉ là lỗi thẻ trong tệp kê khai của tôi khi sử dụng quyền disable_keyguard. Nó hoạt động chính xác ngay bây giờ mà tôi đã chỉnh sửa tệp kê khai.

+0

việc thêm quyền này không hoạt động đối với tôi. Tôi cần chạy hoạt động của mình khi người dùng nhấn nút mở khóa. Hoạt động sẽ kích hoạt trước màn hình mở khóa. – Manikandan

5

tôi khuyên bạn nên sử dụng cờ cửa sổ dismiss_keyguard hoặc show_when_locked nếu bạn có cửa sổ cần phải đi qua phía trên cùng của màn hình khóa ngay khi đánh thức.

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

cách bạn sử dụng này là như sau (gọi onCreate trước khi thiết lập layout)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
+6

Tôi biết đây là một bài viết cũ, nhưng những lá cờ không làm việc cho tôi bất kể tôi đặt chúng ở đâu, người quản lý bảo vệ bàn phím mặt khác dường như luôn hoạt động. Chỉ cần một điểm cần lưu ý đối với những độc giả khác – Idistic

+0

Đúng là sử dụng cờ là giải pháp 'được khuyến nghị', tuy nhiên, bạn sẽ thấy rằng chúng không hoàn hảo trong việc sử dụng thực tế. Ví dụ: với cờ android sẽ nhanh chóng 'flash' phím bảo vệ khi di chuyển hoạt động ra khỏi tiêu điểm. Đó là nhỏ, nhưng grating. Vô hiệu hóa trình bảo vệ phím hoàn toàn không có vấn đề đó. –

+0

Lưu ý rằng Hoạt động không thể minh bạch chút nào. Ngoài ra, bạn không thể sử dụng dialog.getWindow() để đặt cờ. Điều này có thể không cho phép ứng dụng hiển thị một phần hoạt động từ các ứng dụng khác. Xem vấn đề này https://code.google.com/p/android/issues/detail?id=8778 – aaronvargas

1

Tôi không nhìn thấy công việc giải pháp bảo vệ phím (và nó được phản). Những gì làm việc cho tôi là để lấy một thường trực PARTIAL_WAKE_LOCK mà tôi không bao giờ phát hành. Điều này ngăn không cho thiết bị thực sự rơi vào giấc ngủ và do đó tránh cho màn hình khóa được kích hoạt.

Sau đó, mỗi khi màn hình tắt, tôi nghe thông báo đó và đánh thức thiết bị sao lưu. Nó hoạt động trên tất cả các thiết bị tôi đã thử nghiệm.

Tôi nhận thấy rằng điều này sẽ giết pin của thiết bị khá nhanh, vì vậy, bạn phải sử dụng điều này rất ít và chú ý.

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