2010-04-30 68 views
14

我有一个应用程序,我想警告用户,如果他们不使用默认的Android软键盘。 (即他们正在使用Swype或其他一些东西)。如何确定Android中的当前IME?

如何检查他们当前选择的输入法?

回答

24

你可以得到一个默认的输入法,使用:

Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); 
+0

它不适用于我:( 它返回null – 2016-02-15 09:52:42

5

InputMethodManagergetEnabledInputMethodList()。您在Activity中从getSystemService()获得InputMethodManager

+0

我看到了和返回的输入法是提供给用户一个名单 - 但我似乎无法弄清楚如何确定哪些目前选择一个。 – jkhouw1 2010-04-30 14:09:56

+0

不幸的是,我现在唯一能做的就是检查getEnabledInputMethodList返回的List的长度,如果> 2,警告他们如果他们不使用默认的IME,他们可能会有问题。任何人有任何其他的指针/想法? – jkhouw1 2010-04-30 19:57:54

+0

您可能会考虑开放一个关于您认为您将使用Swype的用户遇到的问题的新问题,并找出如何解决该问题。毕竟,我怀疑随着Android进入其他市场(例如电视/机顶盒),“默认输入法”的范围会扩大。因此,我真的推荐我们找出如何得到它,所以你不在乎他们使用的IME。 – CommonsWare 2010-04-30 20:28:34