【问题标题】:Disable iOS/Android screen mirroring禁用 iOS/Android 屏幕镜像
【发布时间】: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


【解决方案1】:

我最终使用 DisplayManager.getDisplays() 来获取显示列表,并检查长度是否 >1。如果是,则检测到屏幕镜像。

【讨论】:

  • 如何禁用应用的镜像?
  • 很久以前了,不过我想我并没有禁用镜像,而是只是通知用户正在镜像屏幕。
  • 请提供如何在android中检测镜像的解决方案?
  • 我个人讨厌阻止镜像的应用程序。我认为为我决定在哪个屏幕上可以看到我的手机内容非常麻烦。我希望谷歌能够限制开发人员的这种错误行为。用户应该能够将其条目电话镜像到他想要的任何屏幕。
  • 使用镜像应用程序的 scrcpy 软件,如果在应用程序运行之前开始录制,则显示的大小也为 1,它也返回 1
猜你喜欢
  • 2018-04-20
  • 2014-01-27
  • 2012-01-24
  • 2016-08-13
  • 2012-04-13
  • 2020-03-10
  • 2023-03-08
  • 2011-09-27
  • 1970-01-01
相关资源
最近更新 更多