【问题标题】:how to fix screen overlay detected programmatically如何修复以编程方式检测到的屏幕覆盖
【发布时间】:2017-01-05 03:22:09
【问题描述】:

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

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

【问题讨论】:

  • 我不确定这是否适合你。但是看看这个,stackoverflow.com/questions/21969579/overlay-dialog-align-view
  • @Harish 谢谢,但这不是我的问题
  • 感谢您的问题更新,现在我可以清楚地理解您的问题。是的,我的建议对你不起作用。让我也为您寻找解决方案。

标签: android android-6.0-marshmallow


【解决方案1】:

好的,

我终于找到了解决方案,我搜索了所有网络,找不到任何有用的东西。 答案是:当您请求新权限时,永远不要做其他事情,例如显示 toast 或......在我的情况下,我重新启动我的应用程序并请求下一个权限,我使用 this code 重新启动应用程序。

祝你好运。

【讨论】:

  • 嗨,经过我的测试,我只有在第一次打开我的应用程序时才得到屏幕覆盖弹出窗口。因此,重新启动将是一个解决方案。但是你能解释一下原因吗?
  • @DennyWeinberg 问题是权限队列当您要求第一次烫发时没有问题 ut 当您要求第二次烫发时有烫发队列和 android 计算它的屏幕覆盖权限,这意味着您开始要求使用 os 的两个或多个部分
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    或者你可以使用 postDelayed 来延迟你的代码执行

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-13
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      • 2019-10-18
      相关资源
      最近更新 更多