Android输入法相关(一)
本篇文章简单介绍下Android 系统中输入法相关的一些简单方法.
1: 获取当前默认输入法
/**
- @param context
- @return
- 获取默认输入法
*/
private static String getDefaultImePackage(Context context) {
String input = Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD);
Log.i(“xxxxx”, “getDefaultImePackage: “+input);
if (!TextUtils.isEmpty(input)) {
return input.split(”/”)[0];
}
return “”;
}
通过DEFAULT_INPUT_METHOD获取到的是com.baidu.input_oppo/.ImeService
另外我们可以通过adb直接获取 Settings.Secure.DEFAULT_INPUT_METHOD。
C:\Users\zj>adb shell settings get secure default_input_method
com.sohu.inputmethod.sogou/.SogouIME
2: 获取所有的输入法
输入法管理器(InputMethodManager)是Android系统提供的一个类,用于管理设备上的输入法。
它可以用来显示或隐藏输入法,切换输入法的状态,以及监听输入法的各种事件。
- getSystemService(Context.INPUT_METHOD_SERVICE)获取输入法管理器
- getEnabledInputMethodList()用于获取已启用的输入法列表
public static List getInputMethodList(Context context){
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm == null) {
return new ArrayList<>();
}
List enabledInputMethodList = imm.getEnabledInputMethodList();
for (InputMethodInfo inputMethodInfo : enabledInputMethodList) {
Log.i(“xxxxx”, "getList: "+inputMethodInfo.getPackageName());
}
return enabledInputMethodList;
}
3: 展示输入法选择框.
showInputMethodPicker()用于显示法选择器。
当调用该方法时,系统会弹出一个对话框,显示当前可用的输入法列表供用户选择。
public static void showInputMethodPicker(Context context) {
try {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.showInputMethodPicker();
}
} catch (Throwable e) {
e.printStackTrace();
}
}