背景
我已经多次注意到,当我使用使用 SAW(系统警报窗口,AKA“显示在其他应用程序上)权限的应用程序(此处示例)时,我打开 Chrome 网络浏览器并访问一些需要权限的网站(这里的例子,取自这里),它不会让我授予/拒绝权限:
问题
我找不到他们是如何做到的,以及可以从哪个 Android 版本进行检查。
我发现了什么
可悲的是,尽管我搜索了很多,但我实际上还有更多问题。
例如,为什么网络浏览器无法检测到哪个应用程序显示在顶部,并告诉我们禁用它?
或者,现在 Android 12 可能会到来,似乎有一个阻止 SAW 的新权限(这里):
Android S 中添加的 HIDE_OVERLAY_WINDOWS
public static final String HIDE_OVERLAY_WINDOWS 允许应用防止在其上绘制非系统覆盖窗口
常量值:“android.permission.HIDE_OVERLAY_WINDOWS”
也许对于这种情况,没有多少人问过它,或者由于某种原因,我没有选择正确的东西来寻找答案。
问题
如何在我显示某些内容时检测某些应用程序是否正在使用 SAW 权限?
有没有办法检测哪个应用程序这样做?
API 可以为此提供什么,从哪个版本可用?
我记得有人告诉我,可访问性可用于在顶部绘图。遗憾的是,我找不到有关如何执行此操作的教程以及此类应用程序的示例。这个 API 也能检测到它们吗?或者这不被视为SAW?我在哪里可以找到有关如何操作的教程,以便我可以查看它?
奖励:您如何在 Android S 上使用隐藏 SAW 的新权限?