Android软键盘的"shift state"如何读出和设置?

How can I read out and set the "shift state" of the soft keyboard on Android?

我有一个 EditText 视图,应用程序用户可以输入任何文本(例如用户名或密码)。用户可能会切换到软键盘上的 "numeric shift state",例如仅输入数字时。当用户下次输入 activity 我想恢复软键盘的 "numeric shift state" ,这样他就不必总是切换到上次使用的键盘状态。

所以我需要 "read out" 当我离开 activity(或字段的焦点)时,输入法的当前活动状态是什么。我还得在打开软键盘的时候初始化该字段的输入法。有没有办法在 android 上做到这一点?

注意:我不想通过将 inputMethod 设置为 "number" 来强制输入法。

没有这样的API。甚至没有这样的概念——"shift state" 的想法可能存在于单个键盘中,但它不是 Android 框架的一部分,并且可能存在也可能不存在于给定的键盘中。

事实上,一些键盘可以使用元状态,通过将 keycode_shift 发送到 android 系统来完成 'shift' 工作。但这不是强迫行为,所以我们无法检测到真实的当前状态。