我一直在想,Android API(或其他库/框架)是否有助于检测使用WiDi、Miracast、MHL或基本上任何其他镜像屏幕技术的设备屏幕是否被镜像。
敬礼, Inx
您可以浏览所有设备显示列表,并获取每个标志,以查找具有VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR的标志?不确定,但尝试几次应该可以让您找出哪些标志可以实现此功能。
请参阅 DisplayManager 和 VirtualDisplay 文档。
自API级别16(Android 4.1,在问题提出时发布于2012年,因此相对较新)以来,Android就拥有了MediaRouter
API。添加ROUTE_TYPE_LIVE_VIDEO
的回调会订阅MediaRouter.Callback.onRoutePresentationDisplayChanged
,以在连接或断开外部显示器时调用。如果应用程序具有声音,则另一种选择是跟踪路由输出。输出类型TYPE_HDMI
和TYPE_REMOTE_SUBMIX
用于外部显示。
你无法检测,但可以删除镜像功能。
如果开发者选项被禁用,任何软件都无法进行镜像。
这段代码将告诉你安卓是否可以进行镜像。
int CanMirror = Settings.Secure.getInt(this.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED , 0);
//returns 1 if can mirror
//returns 0 if can't mirror