SYSTEM_ALERT_WINDOW - 如何在 Android 6.0 和 targetSdkVersion 23 上自动获得此权限

新手上路,请多包涵

Facebook、Evernote、Pocket - 所有应用都自动在 Android 6.0 上获得此权限,即使它们的目标是 23 ( targetSdkVersion=23 )。

有很多关于新的 Marshmallow 权限模型的文档。其中之一是 SYSTEM_ALERT_WINDOW 被“提升”为“高于危险”权限等级,因此需要特殊的用户干预才能授予应用程序这些权限。如果应用程序具有 targetSdkVersion 22 或更低,应用程序会自动获得此权限(如果在清单中请求)。

但是,我注意到一些应用程序获得了此权限,而无需将用户发送到 Draw over other apps 权限的设置特殊页面。我看到了 Facebook、Evernote、Pocket——也许还有更多。

任何人都知道如何在没有用户通过 Settings -> Apps -> Draw over other apps 的情况下授予应用程序此权限?

谢谢

原文由 oriharel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 660
2 个回答

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

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

相反,如果应用程序是旁加载的,则不会自动授予权限。您可以尝试从 apkmirror.com 下载并安装 Evernote APK。如您所见,您需要在 Settings -> Apps -> Draw over other apps 中手动授予权限。

这些是允许 Play 商店自动授予 SYSTEM_ALERT_WINDOW 权限的提交 [1] [2]

原文由 Mattia Maestrini 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于那些希望在从 Play 商店下载应用程序时自动获得此权限的人,除了 Manifest 中的 SYSTEM_ALERT_WINDOW 之外,您应该转到 此链接 并向 Google 请求此链接。

您必须提供一些额外信息,说明您需要此权限的原因,Google 会审核并自动授予您权限。

请记住,在您提出要求之前,您必须:

  • 在 Manifest 中拥有 SYSTEM_ALERT_WINDOW 权限

  • 提示用户在您的应用中授予 SYSTEM_ALERT_WINDOW 权限(如果尚未授予)

如果我错过了什么,请随时更新答案

原文由 Kzaf 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题