Android SYSTEM_ALERT_WINDOW 权限

Android SYSTEM_ALERT_WINDOW permission

我读到 Android 6.0,用户需要通过转到应用程序高级设置并启用 "Draw over other apps" 手动允许应用程序持有此权限。我有一个带有 Android 6.0 的 Nexus 5,但系统似乎没有提示我启用此设置。当我从 Play 商店安装需要此权限的应用程序(例如 LastPass)时,它会自动获得授权。

为什么会这样?

每个请求 SYSTEM_ALERT_WINDOW 权限并通过 Play 商店安装的应用程序(需要 6.0.5 或更高版本)将自动授予权限。

点击!这可能有帮助

这是 Marshmallow 6.0.1 中引入的新行为。

每个请求 SYSTEM_ALERT_WINDOW 权限并通过 Play 商店安装的应用程序(需要 6.0.5 或更高版本),都将授予权限自动。

如果应用程序被旁加载,则不会自动授予权限。您可以尝试从 apkmirror.com 下载并安装 Evernote APK。如您所见,您需要在 设置 -> 应用程序 -> 绘制其他应用程序 .

中手动授予权限

[以上资料来自.]

如果您希望应用程序被旁加载,您可以手动显示提示并指示用户从设置中启用绘制其他应用程序权限。看看Requesting permissions

主要有两种权限,分别是

  • 普通权限
  • 危险权限

普通权限表示让应用拥有这些权限不会对用户的隐私或安全造成很大风险。例如,用户有理由想知道应用程序是否可以读取他们的联系信息,因此用户必须明确授予此权限。相比之下,允许应用振动设备并没有很大的风险,因此该权限被指定为正常。

危险权限涵盖应用程序需要涉及用户隐私信息的数据或资源的区域,或者可能会影响用户存储的数据或其他应用程序的操作。例如,读取用户联系人的能力是一项危险的权限。如果应用声明它需要危险权限,则用户必须明确授予该应用权限。

在这种情况下,SYSTEM_ALERT_WINDOW属于普通权限,即如果应用程序在其清单中声明它需要普通权限,系统会自动授予应用程序在安装时获得该权限。系统不会提示用户授予正常权限,用户也无法撤销这些权限。

您可以在link and dangerous permissions here中看到普通权限列表。