2011-12-26 54 views
6

Tôi đang làm việc trên một ứng dụng trên Android sẽ chia sẻ màn hình với một thiết bị Android khác.Ứng dụng này sẽ chạy dưới nền dưới dạng dịch vụ.Chụp màn hình của màn hình Hiện tại

Tôi muốn chụp màn hình (màn hình hiện tại), lưu nó dưới dạng JPEG và liên tục gửi nó qua UDP tới thiết bị Android khác.

Nhưng vấn đề của tôi là cách chụp màn hình hiện tại bằng cách chụp bộ đệm khung.

Vui lòng trợ giúp.

Trả lời

3

Bạn có thể lấy ảnh chụp màn hình của một bố cục bằng cách cho phép

setDrawingCacheEnabled(true); 

về quan điểm.

Kiểm tra link

+0

Cảm ơn. Nhưng điều này sẽ chỉ cung cấp cho các ảnh chụp màn hình của ứng dụng của tôi view.I muốn chụp bất cứ điều gì xuất hiện trên màn hình khi ứng dụng của tôi chạy trong nền – user1095154

+0

bạn muốn ảnh chụp màn hình của dịch vụ nền ... mà tôi không biết ... hy vọng ai đó sẽ giúp bạn –

7

Các bộ đệm khung Android này (và trên các hệ thống Linux khác) được truy cập bằng cách mở/đồ họa/thiết bị fb0/dev. Điều này đòi hỏi quyền truy cập root và thậm chí với quyền truy cập root nó sẽ không hoạt động đúng trên tất cả các thiết bị. Hầu hết các thiết bị sử dụng một cặp framebuffers và chuyển đổi giữa chúng. Vấn đề lớn hơn là ngay cả với một điện thoại bắt nguồn từ, ID người dùng của máy Dalvik không có đặc quyền để truy cập vào bộ đệm khung (fb0). Điều này có nghĩa là bạn sẽ không bao giờ có thể mở và đọc từ thiết bị fb0 trực tiếp từ mã Java. Bạn sẽ cần phải chạy một ứng dụng Linux gốc là root và nó sẽ có thể truy cập fb0 (sau khi người dùng cho phép). Tôi đã thành công trong việc thực hiện công việc này và nó khá khó khăn và cũng được Google tán thành. Tôi vẫn có khả năng biến điều này thành một ứng dụng thương mại, nhưng những hạn chế và không tương thích đặt xác suất khá thấp.

+0

Hi BitBank, Cảm ơn bạn đã trả lời. – user1095154

+1

Tôi đã sử dụng liên kết http://www.pocketmagic.net/?p=1473 để truy cập bộ đệm khung. Nhưng khi tôi sử dụng cùng một mã sử dụng một dịch vụ cho ảnh chụp màn hình liên tục sau đó tôi nhận được vấn đề bộ nhớ. Nhưng khi tôi chụp một màn hình bằng cách sử dụng một hoạt động thì không có lỗi bộ nhớ. Bạn có thể giúp – user1095154

+0

Bạn đang lập bản đồ và hủy ánh xạ bộ nhớ khung hình hoặc bạn đang giữ con trỏ đến nó và sử dụng nó nhiều lần? Tôi đã có thể liên tục chụp màn hình bằng cách giữ fb0 mở trong khi tôi đang sử dụng nó. – BitBank

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