我一直想知道 android API(或任何其他 lib/框架)中是否有任何方法可以帮助我检测我的设备屏幕是否使用 WiDi、Miracast 或 MHL 或基本上任何其他镜像屏幕的技术进行镜像。
溴,英克斯
自 API 级别 16(Android 4.1,于 2012 年发布,在提出问题时相当新)以来,Android 已经有了MediaRouter
API。ROUTE_TYPE_LIVE_VIDEO
为订阅添加回调以MediaRouter.Callback.onRoutePresentationDisplayChanged
在外部显示器连接或断开连接时调用。如果应用程序有声音,其他选项是跟踪路由输出。输出类型TYPE_HDMI
和TYPE_REMOTE_SUBMIX
用于外部显示。
您可以浏览所有设备显示的列表,并在每个设备上获取标志,以便找到可能带有 VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR 的标志?不确定,但几次尝试应该可以让你弄清楚哪些可以做到。
cf: DisplayManager和VirtualDisplay文档
您无法检测到,但可以删除镜像的功能。如果禁用了开发者选项,则
没有软件可以镜像。
这段代码将告诉android是否可以镜像。
int CanMirror = Settings.Secure.getInt(this.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED , 0);
//returns 1 if can mirror
//returns 0 if can't mirror
我不确定你想要实现什么,但如果你只是想禁用屏幕截图等,你可以使用FLAG_SECURE
.