2015-09-10 14 views
7

Tôi đang làm việc trong ứng dụng có các video có bản quyền chỉ hoạt động trong thiết bị Android chứ không phải trong màn hình ngoài được kết nối qua HDMI hoặc không dây. Tôi đã tìm thấy API tuyệt vời PresentationDisplayManager để phát hiện và kiểm soát nội dung nào sẽ được hiển thị trên màn hình bên ngoài nhưng API này chỉ có sẵn trong API 17 (android 4.2) và cộng thêm. Bất kỳ ý tưởng nào về cách thực hiện điều này bên dưới Android 4.2 hoặc ít nhất là để phát hiện và được thông báo cho màn hình được kết nối.Cách phát hiện các màn hình bên ngoài trong Android API trước 17

Câu hỏi # 2: Điều gì xảy ra nếu thiết bị Android được kết nối với PC để ghi màn hình. Có thể Presentation hoặc DisplayManager trợ giúp API để phát hiện điều đó không?

+2

# 1 Hãy xem xét có minimumSdkVersion = 17. # 2 http://stackoverflow.com/questions/28606689/how-to-prevent-screen-capture-in-android –

Trả lời

1

Bất kỳ ý tưởng làm thế nào để làm điều này dưới android 4.2 hoặc ít nhất là để phát hiện và được thông báo cho các màn hình được kết nối.

Có thể không hỗ trợ truy cập cấp ứng dụng cho màn hình ngoài trong các phiên bản Android cũ hơn. Tương đối ít thiết bị thậm chí hỗ trợ hiển thị bên ngoài; những người chỉ cung cấp phản chiếu màn hình ở cấp độ hệ điều hành. Đặt cược tốt nhất của bạn, nếu bạn muốn gọi nó, là để có được bàn tay của bạn trên một vài thiết bị như vậy và xem nếu có bất kỳ thông điệp LogCat phổ biến cho thấy sự tồn tại của màn hình bên ngoài, hoặc có thể một số Linux- công cụ cấp độ trong /proc. Tuy nhiên, có một cơ hội rất tốt là những thứ này sẽ thay đổi theo nhà sản xuất và thiết bị.

Điều gì xảy ra nếu thiết bị Android được kết nối với PC để ghi màn hình. API trình bày hoặc DisplayManager có thể giúp phát hiện điều đó không?

số

2

Quay lại API 16, bạn có thể sử dụng lớp MediaRouter. Trang web nhà phát triển Android cf.

Để hiển thị mặc định cho bản trình bày của bạn, hãy gọi MediaRouter.getSelectedRoute() và chuyển nó ROUTE_TYPE_LIVE_VIDEO. Điều này trả về đối tượng MediaRouter.RouteInfo mô tả tuyến đường hiện được chọn của hệ thống cho bản trình bày video. Nếu MediaRouter.RouteInfo không phải là null, hãy gọi getPresentationDisplay() để hiển thị Hiển thị màn hình được kết nối.

nguồn đầy đủ: http://developer.android.com/about/versions/android-4.2.html#SecondaryDisplays

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