如何修复以编程方式检测到的屏幕覆盖
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?
在我的应用程序中,我在 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?