我正在向用户展示输入法选择器,然后选择器弹出:
InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
im.showInputMethodPicker();
现在,如果用户关闭了选择器(例如通过单击选择器外部),我想知道这是否发生并执行一些操作(例如显示通知)。
我知道在一个 Activity 中我可以用肮脏的方式检查根布局的焦点,并且我知道通过 Accessibility 权限我可以检查该系统对话框是否获得焦点。
问题是我正在运行一项服务,我需要检测 IME 选择器是否显示,即使我不在我的应用程序中(例如第三方应用程序,甚至是 Android 键盘设置),而且我发现 Accessibility 权限对用户来说有点困惑,因此我宁愿不诉诸于此并找到替代方法。
还有其他方法吗?
最佳答案
这应该是评论,但我还不能评论。
您可以使用 xposed
来实现这一点,但这需要 Root设备,我猜这不在讨论范围内。
这是无障碍 api 的用途。你已经说过你不想使用肮脏的方式,所以我建议你只使用说的 api。
出于安全考虑,不应该有办法做到这一点(并且不是 afaik)。
关于android - 如何在没有辅助功能权限的情况下检测输入法选择器的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29966135/