【发布时间】:2017-02-14 15:40:33
【问题描述】:
在 iOS 和 Android 中有什么方法可以检测我的应用是否被镜像(通过 Miracast/AirPlay/Samsung Smart View)和/或禁用镜像?
【问题讨论】:
-
也许您需要使用 DisplayManager 检查所有活动显示器;如果超过一个,则它正在镜像或检查 VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR 或 VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY developer.android.com/reference/android/hardware/display/…
-
@MorrisonChang 是的,我目前正在使用 FLAG_SECURE,它似乎可以与 Miracast(这些元素上的空白屏幕)一起使用,但是当我使用 Smart View 镜像到三星电视时似乎不起作用.另外,AirPlay 呢?
-
@ecle 我如何检查这两个标志?我已经设法使用 DisplayManager.getDisplays() 获取显示,然后遍历它们以查看是否设置了 FLAG_SECURE,以及 getDisplayId() 是否为 Display.DEFAULT_DISPLAY。使用 Miracast,FLAG_SECURE 没有设置,我猜 Smart View 设置了这个,这就是为什么尽管在我的 LayoutParams 中使用了 FLAG_SECURE,它仍然被镜像。我假设镜像显示器应该有不同的 displayId(Miracast 有不同的 id),我可能可以用它来检测,但我怎样才能阻止屏幕元素显示在镜像显示器中?
-
我还应该注意,使用 DisplayManager 进行的上述检测不适用于基于 ADB 的 Vysor 屏幕镜像。尽管在这种情况下被镜像,但检测到的显示器数量为 1。
标签: android ios airplay mirroring miracast