如何修复以编程方式检测到的屏幕覆盖

how to fix screen overlay detected programmatically

在我的应用程序中,我在 Android SDK 23 中请求访问 SMS 的权限(运行时权限),但问题是出现对话框屏幕覆盖并且未授予访问权限。我禁用了所有其他应用程序覆盖但没有变了。 我找到了这个 link 但没有帮助

问题是如何以编程方式修复它?

好的,

终于我找到了解决方案,我搜索了所有网络,但找不到任何有用的东西。 答案是:当你请求新的许可时,永远不要做其他事情,比如吐司或......在我的例子中,我重新启动我的应用程序并请求下一个许可,我使用 this code 来重新启动应用程序。

祝你好运。

这是您的解决方案:https://gist.github.com/Aeonitis/2337b1ca652173839395be82db7d05c3

如果您有任何问题,请告诉我。

或者您可以使用 postDelayed

延迟代码执行
(new Handler()).postDelayed(new Runnable() {
   @Override
   public void run() {
      // do something
   }
}, 500); // it doesn't hurt to wait 500ms is it?