ACTION_MANAGE_OVERLAY_PERMISSION 未重定向到 Api 30 中的应用程序页面

ACTION_MANAGE_OVERLAY_PERMISSION not redirected to the app page in Api 30

要请求用户授予“允许在其他应用程序之上显示”权限,可以发送 IntentSettings.ACTION_MANAGE_OVERLAY_PERMISSION 操作。对于 R 之前的 Android 版本,(API 版本 < 30)它直接转到应用程序设置页面中的此特定设置,但对于 API 30,它转到“显示在其他应用程序之上”权限页面,非常不利于用户体验。

我了解到这是一种预期行为,但是否有解决方法?对于需要显示捕获覆盖按钮的屏幕截图应用程序,有哪些替代方案?

I read that it's an intended behavior, but is there a workaround for this?

我什么都不知道。

what alternatives exist?

您可以在 Android 11+ 上使用 bubbles

从长远来看,我预计覆盖将作为一个选项被删除。它们在某些环境中已经受到限制(例如,Android One),并且已经采取了稳步措施来消除这些类型的东西(例如,自定义 toasts)。除非 Google 想出别的办法,否则我的猜测是使用覆盖作为触发机制的应用程序——这听起来像你的场景——最终会迁移到气泡或简单的持久通知。

请注意,气泡在气泡本身之外还有一些 UI — 点击气泡会在弹出窗口 window 中显示 activity。这可能适合也可能不适合您的用例。

并且,FWIW,this sample module 演示了如何显示气泡。