当前位置: 首页 > 知识库问答 >
问题:

如何确定哪个应用程序导致“检测到屏幕覆盖”错误?

谢选
2023-03-14

如果用户在显示通知时试图授予权限,我已经阅读了Android“Screen Overlay Detected”(屏幕覆盖检测)消息,我可以用这句话作为开场白,我完全理解覆盖问题是什么。

我还了解如何请求它,以及如何检查我当前正在运行的应用程序是否有权绘制覆盖(! Settings.canDrawOverlays(this))。

我因为我的应用程序而被责骂,因为每次权限请求弹出时,就会显示覆盖弹出窗口,即使用户允许我的应用程序绘制覆盖,他们也永远无法通过权限屏幕。

经过一番挖掘,问题是一些用户在他们的屏幕上运行一个录音应用程序:

问题是,这不是我的应用程序!这是AZ屏幕录制器(链接),它作为覆盖运行,但由于在弹出窗口出现时它们在我的应用程序中,我被归咎于这个问题。

我想向用户显示一些东西,他们需要检查是否有任何其他应用程序以覆盖方式运行,但我不知道如何检查。

我可以检查他们是否能够在我的应用程序中绘制叠加,但我不知道如何检查其他人。

因此,我的问题是,有没有一种方法可以通过编程检查当前是否有任何应用程序在运行时运行覆盖,如果有,我可以找到这些应用程序的包名吗?

(顺便说一句,我对这个有问题的screen recorder应用程序没有任何疑虑,我只是想链接到它,这样任何人都可以下载并测试,如果他们愿意的话)

共有1个答案

洪英豪
2023-03-14

如果您可以创建测试视图并在其上生成点击事件,那么对于牛轧糖和奥利奥版本,您可以使用:

view.setOnTouchListener((v, event) -> {
        if ((event.getFlags() & 0x2) != 0) {
            mPresenter.onVideoViewTapped();
            return false;
        }
        return false;
    });

这里0x2是FLAG_WINDOW_IS_PARTIALLY_OBSCURED的值,按留档隐藏。

 类似资料:
  • 运行我的android应用程序时出现以下错误: 检测到屏幕覆盖: 要更改此权限设置,您首先必须从设置中关闭屏幕覆盖 我的应用程序没有列在显示的列表中。 如何解决这个错误?

  • 我发现下面的问题屏幕覆盖检测时,在Motog3Marshmallow移动点击权限。 我在到处的互联网搜索中找到了许多解决方案,您可以查看以下内容: > 删除esfile资源管理器 https://www.youtube.com/watch?v=QHidevTDrYI 检测到屏幕覆盖阻止Android权限 https://android.stackexchange.com/questions/148

  • 在我的应用程序中,我请求获得在Android SDK 23中访问SMS的权限(运行时权限),但问题是出现了对话框屏幕覆盖,并且未授予访问权限。我禁用了所有其他应用程序覆盖,但没有任何更改。我找到了这个链接,但没有帮助 问题是我如何通过编程修复它?

  • 我注意到我的新手机上的Android应用程序有一个奇怪的问题。SDK 23权限弹出窗口(如外部存储)被下面的附加警报阻止。我最初以为这与我的手机有关,但它似乎不影响我安装的任何其他应用程序。 这个问题可能与安装了调试版本有关,还是我的权限处理有问题?我以为它可能与我正在使用的广告平台之一有关,但我尝试禁用它们,它仍然出现 我已经粘贴了下面生成此权限请求的图像保存功能。我正在使用Dexter来节省编

  • 我创建了一个应用程序,它在后台连续运行,并显示浮动覆盖文本视图(通过使用权限android.permission.SYSTEM_ALERT_WINDOW)。 我在联想Android设备中遇到问题,当其他应用程序尝试请求用户权限时,会出现一个警报对话框,显示“检测到屏幕覆盖”。虽然我在Redmi 3S Prime设备上测试了同一应用程序,但权限对话框中的“允许”按钮是不可单击的,直到我关闭了应用程序

  • 问题内容: 如何从一个活动屏幕导航到另一个活动屏幕?在第一个屏幕中,我有一个按钮,如果我单击该按钮,则必须移至另一个“活动”屏幕。 问题答案: