如何在没有辅助功能权限的情况下检测输入法选取器的可见性



我像这样向用户显示输入法选取器,并且弹出选取器:

InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
im.showInputMethodPicker();
现在,如果用户关闭选取器(例如

,通过在选取器外部单击),我想知道发生了什么并执行一些操作(例如显示通知)。

我知道在活动中,我可以以肮脏的方式检查根布局的焦点,并且我知道使用"辅助功能"权限,我可以检查该系统对话框是否聚焦。

问题是我正在运行一项服务,即使我不在我的应用程序中(例如第三方应用程序,甚至是 Android 键盘设置),我也需要检测 IME 选择器是否显示,而且我发现辅助功能权限对用户来说有点混乱,因此我宁愿不求助于它并找到另一种方式。

有没有其他方法?

这应该是一个评论,但我还不能评论。

你可以使用xposed来实现这一点,但这需要一个有根的设备,我想这不在讨论范围内。

这是可访问性 API 的目的。你已经说过你不想使用肮脏的方式,所以我建议你只使用所说的 api。

出于安全考虑,不应该有办法做到这一点(而且不是afaik)。

相关内容

  • 没有找到相关文章

最新更新