android 如何检测屏幕镜像

vm0i2vca  于 2022-11-27  发布在  Android
关注(0)|答案(4)|浏览(297)

我一直在想,在android API(或任何其他lib/框架)中是否有任何方法可以帮助我检测我的设备屏幕是否使用WiDi、Miracast或MHL或基本上任何其他技术来镜像你的屏幕。
溴、铟

5w9g7ksd

5w9g7ksd1#

您可以浏览所有设备显示的列表,并获取每个设备上的标志,以便找到一个具有VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR的设备。不确定,但几次尝试应该可以让您找出哪些设备将执行此操作。
cf:DisplayManagerVirtualDisplay文档

vql8enpb

vql8enpb2#

自API 16级起(Android 4.1,发布于2012年,所以当被问到这个问题时,这是相当新的)Android已经有了MediaRouter API。为ROUTE_TYPE_LIVE_VIDEO添加回调可以订阅MediaRouter.Callback.onRoutePresentationDisplayChanged,以便在连接或断开外部显示器时调用。如果应用程序有声音,另一个选项是跟踪路由输出。输出类型TYPE_HDMITYPE_REMOTE_SUBMIX用于外部显示。

dldeef67

dldeef673#

您无法检测,但可以删除镜像的功能
如果开发者选项*被禁用,则任何软件都无法镜像。
这段代码将告诉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

参考:https://stackoverflow.com/a/63971764/11390822

erhoui1w

erhoui1w4#

我不知道你想达到什么目的,但是如果你只是想禁用屏幕截图之类的功能,你可以使用FLAG_SECURE

相关问题