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

来自清单的权限在Android 6中不起作用

赵朝
2023-03-14

它完全忽略了:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

所以我得到了例外:

原因:android。看法WindowManager$BadTokenException:无法添加Windows android。看法ViewRootImpl$W@86fb55b--此窗口类型的权限被拒绝

它甚至没有列出:

我应该如何修复它?谢谢

编辑:

它列在配置应用程序/高级/绘制其他应用程序中。所以我打开它,现在它工作正常,但是为什么在我运行我的应用程序时没有任何对话框询问权限?所有权限都被失聪关闭,我需要转到设置并手动打开它?

共有1个答案

景明诚
2023-03-14

多亏了Commonware的博客帖子,我得到了一些线索。

假设您的代码位于“活动”或“片段”中,请检查覆盖权限,并在必要时提出请求:

public static int OVERLAY_PERMISSION_REQ_CODE = 1234;

public void someMethod() {
    if (!Settings.canDrawOverlays(this)) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                Uri.parse("package:" + getPackageName()));
        startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
    }
}

然后,重新检查权限以获得更好的用户体验:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {
        if (!Settings.canDrawOverlays(this)) {
            // SYSTEM_ALERT_WINDOW permission not granted...
        }
    }
}
 类似资料:
  • 问题内容: 我正在尝试创建一个可以从Gallery应用程序获取图像并将其显示在imageButton上的简单应用程序。我正在运行Android 5.0.1的手机上使用API​​ 21进行测试。不幸的是,无论我尝试什么,即使我指定了权限,我仍然会遇到安全错误。 我获取图像的代码是: 当我尝试从Dropbox选择图像时,该代码有效,但是当我从图库中选择图像时,我得到 我将READ_EXTERNAL_S

  • 我使用了,并在那里声明了manifestEntries。 从

  • 我制作了一个简单的测试应用程序,用于使用java amqp库读取RabbitMQ队列()。 但由于Android权限(socket),我在连接到我的rabbit服务器时遇到了问题 以下是错误消息: W/系统。错误:java。网SocketException:套接字失败:EPERM(不允许操作) 我尝试过添加到舱单。下面是它的样子: 我错过了什么? 编辑 根据要求,以下是完整的错误跟踪:https:

  • 问题内容: 什么样的配置是需要使用注解来自像,等等?这是我的代码: 当我尝试在另一个类中使用它时,验证不起作用(即,创建该对象时没有错误): 为什么这不适用和的约束?我还需要做什么? 问题答案: 为了使JSR-303 bean验证在Spring中起作用,您需要做一些事情: 注释的MVC名称空间配置: JSR-303规范JAR :(看起来您已经拥有了) 规范的实现,例如休眠验证,它似乎是最常用的示例

  • 问题内容: 我正在开发一个非常消耗内存的应用程序,并且想要使用largeHeap- Tag,这应该为应用程序提供更多的内存。无论我在AndroidManifest.xml中将此标签设置为什么,它对我给定的实际内存都没有影响。我正在这样读出我的最大内存: 我的清单看起来像这样: 我在模拟器中运行3.1,上面的日志输出始终为48MB。有人可以帮忙吗? 问题答案: 使用ActivityManager.g