android切换输入法工具类
16lz
2021-01-23
android切换输入法工具类
共享一个切换输入法的工具类,可以实现以下功能
- 检测输入法是否安装
- 安装输入法
- 切换输入法(在utf7Ime和android之间切换,如果需要切换成其他的输入法,请自行修改)
import android.util.Log;import com.meitu.travelapk.data.ConfigData;import com.meitu.travelapk.data.PathData;import com.meitu.travelapk.data.TestReport;import org.junit.Assert;import org.junit.Test;import java.io.File;/** * 用于输入法的管理 */public class InputMethodUtils { private static final String TAG = "InputMethodUtils"; public static String UTF7_PKG = "jp.jun_nama.test.utf7ime"; public static String UTF7_KEY = "jp.jun_nama.test.utf7ime/.Utf7ImeService"; public static String Android_KEY = "com.android.inputmethod.latin/.LatinIME"; public enum InputMethod { UTF7, ANDROID } /** * 安装utf7输入法 */ public static void installUTF7() { if (!DeviceUtils.isAppInstalled(UTF7_PKG)) { //拷贝apk到指定目录 String path = ConfigData.rootPath; String fileName = PathData.utfApkName; File apkFile = new File(path + fileName); if (!apkFile.exists()) { FileUtils.copyAssets(path, fileName); } //安装 DeviceUtils.installApk(apkFile); } } /** * 切换将当前输入法,另启一个线程 */ public static void switchInputMethod(final InputMethod input) { Thread switchThread = new Thread(new Runnable() { @Override public void run() { String installCommand; switch (input) { case UTF7: if (!DeviceUtils.isAppInstalled(UTF7_PKG)) { installUTF7(); } installCommand = "settings put secure default_input_method " + UTF7_KEY; TestReport.i("切换到输入法[utf7]"); break; case ANDROID: installCommand = "settings put secure default_input_method " + Android_KEY; TestReport.i("切换到输入法[Android]"); break; default: installCommand = "settings put secure default_input_method " + Android_KEY; break; } ShellUtils.execCommand(installCommand, false); } }); switchThread.start(); }}
更多相关文章
- Android 线程超时的例子
- ANDROID ADB工具使用
- linux安装安卓开发工具android studio
- Android - 组件工具箱(widget tool box)
- Android工具下载
- android 禁止横屏时输入法全屏
- Android隐藏输入法软键盘的注意事项
- android强制隐藏输入法键盘(亲测可用,欢迎留言)