Android 我如何确定哪个应用程序导致了“;检测到屏幕重叠”;错误?
让我先介绍一下,我已经通读了,我完全理解了重叠问题是什么 我还了解如何请求它,以及如何检查我当前运行的应用程序是否具有在覆盖图上绘制的权限(!Settings.canDrawOverlays(this)) 我因为我的应用程序而被责骂,因为每次权限请求弹出时,都会显示叠加弹出窗口,即使用户允许我的应用程序绘制叠加,他们也无法通过权限屏幕。 经过一番挖掘,问题是一些用户正在屏幕上运行一个录音应用程序: 问题是,这不是我的应用程序!这是AZ Screen Recorder(),它作为一个覆盖运行,但由于在弹出窗口出现时它们在我的应用程序中,所以我被归咎于这个问题 我想向用户显示一些他们需要检查是否有其他应用以覆盖方式运行的内容,但我不知道如何检查这些内容 我可以检查他们是否能够在我的应用程序中绘制覆盖图,但我不知道如何检查其他人 因此,我的问题是,是否有一种方法可以通过编程检查当前是否有任何应用程序在运行时运行覆盖,如果有,我能否找到所述应用程序的包名?Android 我如何确定哪个应用程序导致了“;检测到屏幕重叠”;错误?,android,android-6.0-marshmallow,android-permissions,android-overlay,Android,Android 6.0 Marshmallow,Android Permissions,Android Overlay,让我先介绍一下,我已经通读了,我完全理解了重叠问题是什么 我还了解如何请求它,以及如何检查我当前运行的应用程序是否具有在覆盖图上绘制的权限(!Settings.canDrawOverlays(this)) 我因为我的应用程序而被责骂,因为每次权限请求弹出时,都会显示叠加弹出窗口,即使用户允许我的应用程序绘制叠加,他们也无法通过权限屏幕。 经过一番挖掘,问题是一些用户正在屏幕上运行一个录音应用程序: 问题是,这不是我的应用程序!这是AZ Screen Recorder(),它作为一个覆盖运行,但
(顺便说一句,我对正在讨论的screen recorder应用程序没有任何疑虑,我只是想链接到它,以便任何人都可以下载并测试(如果他们愿意)如果您可以创建一个测试视图并生成一个点击事件,那么对于牛轧糖和奥利奥版本,您可以使用:
view.setOnTouchListener((v, event) -> {
if ((event.getFlags() & 0x2) != 0) {
mPresenter.onVideoViewTapped();
return false;
}
return false;
});
这里0x2是标志窗口部分模糊的值,根据文档隐藏。您好,如果您找到任何解决方案,请告诉我。有趣的想法,泰。下次我有机会的时候我会测试这个,请分享结果