我一直在想,在android API(或任何其他lib/框架)中是否有任何方法可以帮助我检测我的设备屏幕是否使用WiDi、Miracast或MHL或基本上任何其他技术来镜像你的屏幕。溴、铟
5w9g7ksd1#
您可以浏览所有设备显示的列表,并获取每个设备上的标志,以便找到一个具有VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR的设备。不确定,但几次尝试应该可以让您找出哪些设备将执行此操作。cf:DisplayManager和VirtualDisplay文档
vql8enpb2#
自API 16级起(Android 4.1,发布于2012年,所以当被问到这个问题时,这是相当新的)Android已经有了MediaRouter API。为ROUTE_TYPE_LIVE_VIDEO添加回调可以订阅MediaRouter.Callback.onRoutePresentationDisplayChanged,以便在连接或断开外部显示器时调用。如果应用程序有声音,另一个选项是跟踪路由输出。输出类型TYPE_HDMI和TYPE_REMOTE_SUBMIX用于外部显示。
MediaRouter
ROUTE_TYPE_LIVE_VIDEO
MediaRouter.Callback.onRoutePresentationDisplayChanged
TYPE_HDMI
TYPE_REMOTE_SUBMIX
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
erhoui1w4#
我不知道你想达到什么目的,但是如果你只是想禁用屏幕截图之类的功能,你可以使用FLAG_SECURE。
FLAG_SECURE
4条答案
按热度按时间5w9g7ksd1#
您可以浏览所有设备显示的列表,并获取每个设备上的标志,以便找到一个具有VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR的设备。不确定,但几次尝试应该可以让您找出哪些设备将执行此操作。
cf:DisplayManager和VirtualDisplay文档
vql8enpb2#
自API 16级起(Android 4.1,发布于2012年,所以当被问到这个问题时,这是相当新的)Android已经有了
MediaRouter
API。为ROUTE_TYPE_LIVE_VIDEO
添加回调可以订阅MediaRouter.Callback.onRoutePresentationDisplayChanged
,以便在连接或断开外部显示器时调用。如果应用程序有声音,另一个选项是跟踪路由输出。输出类型TYPE_HDMI
和TYPE_REMOTE_SUBMIX
用于外部显示。dldeef673#
您无法检测,但可以删除镜像的功能。
如果开发者选项*被禁用,则任何软件都无法镜像。
这段代码将告诉android是否可以镜像。
参考:https://stackoverflow.com/a/63971764/11390822
erhoui1w4#
我不知道你想达到什么目的,但是如果你只是想禁用屏幕截图之类的功能,你可以使用
FLAG_SECURE
。