Tôi muốn tìm ra cách phát hiện khi điện thoại thức dậy ở chế độ màn hình đen và viết trình xử lý cho sự kiện đó. Điều đó có thể không? Có vẻ như đây sẽ là thứ gì đó mà Broadcast Receiver cần xử lý? Hoặc là có một cách tốt hơn hoặc thích hợp hơn?Có thể viết bộ thu phát sóng Android phát hiện khi điện thoại thức dậy không?
Trả lời
Nếu bạn có một dịch vụ mà nó hoạt động bạn có thể nắm bắt những sự kiện với
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Tuy nhiên điều này phụ thuộc vào việc có một dịch vụ vĩnh viễn chạy mà tôi đã gần đây đã học được khuyến khích vì nó là giòn (hệ điều hành thích đóng chúng) và sử dụng tài nguyên vĩnh viễn.
Đáng thất vọng, có vẻ như không thể có người nhận trong tệp kê khai của bạn chặn các sự kiện SCREEN_ON.
This ĐÃ come up very recently:
android.intent.action.SCREEN_ON doesn't work as a receiver intent filter
also
Android - how to receive broadcast intents ACTION_SCREEN_ON/OFF?
Bạn are right on các broadcast receiver. Bạn có thể nghe các sự kiện phát sóng SCREEN_ON và SCREEN_OFF.
Bạn cũng có thể có bộ thu phát sóng để nắm bắt mục đích phát sóng USER_PRESENT khi người dùng đã mở khóa thiết bị. Đương nhiên một số phiên bản của Honeycomb không tôn trọng điều này, nhưng đối với tất cả các phiên bản Android không chết (2.x và 4.x), nó hoạt động độc đáo.
Điều này cũng hoạt động nếu bạn đăng ký từ AndroidManifest.xml. – bk138
- 1. widget cập nhật android từ bộ thu sóng phát sóng
- 2. Bộ phận thu phát và phát sóng
- 3. Sự cố khi lấy khóa đánh thức từ bộ thu sóng phát sóng
- 4. Hoàn thành một Hoạt động từ Bộ thu Phát sóng
- 5. bộ thu phát sóng cho cuộc gọi nhỡ trong android
- 6. Bộ thu phát sóng động trong Fragment
- 7. bắt đầu một asynctask từ bộ thu sóng phát sóng
- 8. Phát hiện Nhà cung cấp Điện thoại khi cài đặt
- 9. Có thể phát hiện xem điện thoại Android có bi xoay không?
- 10. Địa chỉ phát sóng Android
- 11. Không thể nhận android.intent.action.EVENT_REMINDER phát sóng
- 12. Android phát hiện sự kiện khóa điện thoại
- 13. Trình quản lý điện thoại Android để phát hiện sim
- 14. Android: Cách phát hiện "Bật lưu trữ USB" Phát sóng?
- 15. Android AlarmManager không đánh thức điện thoại
- 16. Khởi động và ngừng thu phát sóng
- 17. Thiết bị thu phát sóng Android cho tin nhắn SMS đã gửi?
- 18. $ phát ra $ phát sóng đồng bộ hoặc không đồng bộ?
- 19. Bộ thu phát sóng onReceive() được gọi nhiều lần
- 20. Người phát sóng có thể nhận nhiều chương trình phát sóng không?
- 21. Phát hiện thiết bị Android có phải là điện thoại hoặc máy tính bảng có javascript
- 22. Máy thu phát sóng giá bao nhiêu cho bộ nhớ?
- 23. Thẻ NFC Android nhận được với bộ phát sóng
- 24. Bắt đầu và dừng một thông báo từ bộ thu sóng phát sóng
- 25. android: bộ thu phát sóng cho màn hình bật và tắt màn hình
- 26. Máy phát điện thoại Homophone
- 27. Không thể nhận chương trình phát sóng trong ICS
- 28. Phát sóng Camera Android Video
- 29. Phát triển trò chơi Android - Di chuyển điện thoại
- 30. Android - phát hiện sự kiện mở khóa điện thoại, không hiển thị trên
ah cảm ơn vì vậy sẽ phát hiện màn hình và cho phép tôi xử lý đúng cách? Tôi đã đọc chủ đề của bạn và bạn không khuyên bạn nên chạy dịch vụ nền và chờ điện thoại thức dậy. Tại sao? Nhược điểm và có cách nào xung quanh? Không chạy các dịch vụ nền như thế nào bạn phát hiện các sự kiện như thế này? – Joe
Bài viết này thảo luận về vấn đề dịch vụ nền - http://www.androidguys.com/2010/03/29/code-pollution-background-control/ –
vấn đề với câu trả lời này, bất kỳ lý do nào tại sao nó hoạt động, là vì hoạt động của bạn không nhận được ý định khi điện thoại đang ngủ. vì vậy bạn có thể đăng ký screen_on trong hoạt động của bạn, nhưng bạn sẽ không bao giờ nhận được nó. –