Android在其他应用程序之上绘图>;23 API

Android在其他应用程序之上绘图>;23 API,android,Android,从Android API 23看来,您必须明确请求允许使用其他应用程序 从API级别23开始,除非应用程序在其清单中声明了SYSTEM_ALERT_WINDOW权限,并且用户明确授予应用程序此功能,否则应用程序无法在其他应用程序之上绘制 第二个要求(您必须发送一个意图)的实现非常糟糕,因为它没有弹出带有允许/不允许按钮的新权限窗口,而是将用户发送到一个全新的设置页面,用户必须在该页面中切换切换按钮,然后导航回应用程序 如果未满足第二步,应用程序将抛出“无法添加此窗口类型的窗口权限被拒绝”错误 然

从Android API 23看来,您必须明确请求允许使用其他应用程序

从API级别23开始,除非应用程序在其清单中声明了SYSTEM_ALERT_WINDOW权限,并且用户明确授予应用程序此功能,否则应用程序无法在其他应用程序之上绘制

第二个要求(您必须发送一个意图)的实现非常糟糕,因为它没有弹出带有允许/不允许按钮的新权限窗口,而是将用户发送到一个全新的设置页面,用户必须在该页面中切换切换按钮,然后导航回应用程序

如果未满足第二步,应用程序将抛出“无法添加此窗口类型的窗口权限被拒绝”错误

然而,像《暮光之城》或《Facebook Messenger》这样的应用程序不需要用户切换该权限(我没有被导航到该设置屏幕),但它们能够覆盖所有应用程序


Facebook、Twilight和类似的应用程序是如何绕过这一新要求的?

这不是问题的直接解决方案,而是一种解决方法-将android:targetSdkVersion设置为
22

这在Android 6上仍然可以正常工作,但您将失去API23附带的一些功能

使用谷歌

用户可以手动设置以下属性:

您可以通过以下方式阅读:
Settings.canDrawOverlays(上下文)

请致电谷歌。告诉他们你和facebook一样重要,并希望删除你的权限。他们把你列入白名单。问题解决了。@ChrisFranklin如果。。但我不相信法律允许它将某些应用程序列入白名单。我是认真的。这不仅是100%合法,而且是惯例。这样的应用程序被称为第二方应用程序。他们有更宽松的许可要求,因为他们与谷歌签署了责任合同。相信我,在开发过这些应用程序之后,它们确实存在。如果你想成为第二方应用程序,那么就要变得更受欢迎,并被视为离不开的东西。阅读我的帖子,用户设置这些权限的方式是通过设置页面(而不是弹出窗口),这对用户不友好。