[英]how to detect screen mirroring
我一直想知道在 android API(或任何其他库/框架)中是否有任何方法可以帮助我检测我的设备屏幕是否使用 WiDi、Miracast 或 MHL 或基本上任何其他用于镜像屏幕的技术进行镜像。
溴,英克斯
您可以浏览所有设备显示的列表并获取每个设备显示的标志,以便找到带有 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
自 API 级别 16(Android 4.1,于 2012 年发布,所以在提出问题时相当新)Android 已经有了MediaRouter
API。 为ROUTE_TYPE_LIVE_VIDEO
添加回调订阅MediaRouter.Callback.onRoutePresentationDisplayChanged
以在外部显示器连接或断开连接时调用。 如果应用程序有声音,另一个选项是跟踪路由输出。 输出类型TYPE_HDMI
和TYPE_REMOTE_SUBMIX
用于外部显示。
我不确定你想要达到什么目的,但如果你只是想禁用屏幕截图等,你可以使用FLAG_SECURE
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.