如何检测android之前的API 17中的外部显示
我正在开发应用程序,该应用程序拥有仅适用于Android设备而不适用于通过HDMI或无线连接的外部显示器的受版权保护的视频。 我发现了很棒的API Presentation和DisplayManager来检测和控制在外部显示器上显示哪些内容,但是这个API仅在API 17(android 4.2)和更高版本中可用。 任何想法如何在android 4.2以下做到这一点,或至少检测并通知连接的显示器。
问题2:如果android设备连接到PC进行屏幕录制,怎么办? Presentation或DisplayManager API可以帮助检测?
任何想法如何在android 4.2以下做到这一点,或至少检测并通知连接的显示器。
正如Distwo的回答中所指出的,除了API Level 16中可能的MediaRouter
,在旧版Android中不支持应用程序级外部显示。 相对较少的设备甚至支持外部显示器; 那些只提供操作系统级别的屏幕镜像。
如果你想这么称呼的话,最好的办法是让你的手在几个这样的设备上,看看是否有任何常见的LogCat消息指出外部显示器的存在,或者是/proc
某些Linux级别的东西。 但是,这些很可能会由制造商和设备造成不同。
如果Android设备连接到PC进行屏幕录制,那么怎么办? Presentation或DisplayManager API可以帮助检测?
没有。
回到API 16,您可以使用MediaRouter类。 Cf android开发人员网站。
要获得演示文稿的默认显示,请调用MediaRouter.getSelectedRoute()并将其传递给ROUTE_TYPE_LIVE_VIDEO。 这将返回一个MediaRouter.RouteInfo对象,该对象描述系统当前选择的视频演示路线。 如果MediaRouter.RouteInfo不为null,则调用getPresentationDisplay()以获取代表连接显示的Display。
完整源代码:http://developer.android.com/about/versions/android-4.2.html#SecondaryDisplays
链接地址: http://www.djcxy.com/p/28847.html上一篇: How to detect external displays in android prior API 17