Android API 29 当应用程序获得焦点时,何时检查剪贴板内容?

When to check the clipboard content in Android API 29 when app gets focus?

API29 中与隐私相关的更改之一是应用程序无法访问剪贴板,除非它是 "in focus"。

我正在尝试修复我的应用程序,它在主 window(不在菜单中)中有一个粘贴按钮,因此我需要在用户启动或切换到时检查剪贴板是否有合适的数据应用程序(以决定是否应启用“粘贴”按钮)。我希望当应用程序处于 OnResume 时,它是否已经允许访问剪贴板,但似乎在这种状态下 getPrimaryClip 仍然 returns null 即使剪贴板包含主剪辑。

关于我应该等待哪个事件以确保我的应用程序已被允许访问剪贴板的任何建议?

没关系,我在 How to use onWindowFocusChanged() method? 找到了答案。

诀窍是在 hasFocus 布尔参数为真时检查 OnWindowFocusChanged 中的剪贴板。