android修改默認輸入法


方案一:adb命令設置?
方案2:系統配置;
方案3:調用系統API接口設置
---------------------------
adb shell cmd
adb root
adb remount
adb push xx.apk /system/app  
---------------------------

#Android鍵盤(AOSP) ~ 系統默認
com.android.inputmethod.latin/.LatinIME

#谷歌拼音輸入法
com.google.android.inputmethod.pinyin/.PinyinIME

#谷歌Gboard輸入法
com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME

#觸寶輸入法國際版
com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME

#Go 輸入法
com.jb.emoji.gokeyboard/com.jb.gokeyboard.GoKeyboard

#SwiftKey Keyboard 輸入法
com.touchtype.swiftkey/com.touchtype.KeyboardService

#搜狗輸入法:
com.sohu.inputmethod.sogou/.SogouIME

#微軟必應輸入法
com.bingime.ime/.BingIme

---------------------------
#顯示系統安裝的輸入法列表
adb shell ime list -s

#獲取系統默認輸入法
adb shell settings get secure default_input_method

#設置系統默認輸入法
adb shell settings put secure default_input_method com.touchtype.swiftkey/com.touchtype.KeyboardService

 

示例:

設置輸入法為默認輸入法

adb shell settings put secure default_input_method com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME

adb shell settings put secure default_input_method com.jb.emoji.gokeyboard/com.jb.gokeyboard.GoKeyboard

adb shell settings put secure default_input_method com.touchtype.swiftkey/com.touchtype.KeyboardService

adb shell settings put secure default_input_method com.sohu.inputmethod.sogou/.SogouIME

adb shell settings put secure default_input_method com.bingime.ime/.BingIme

---------------------------
關於國際化的輸入法:(一個輸入法apk可以同時滿足中英日韓等不同國家語言文字輸入

就目前測試了一圈,比較好用的有:

  • 觸寶輸入法國際版
  • Go 輸入法
  • SwiftKey  // 被微軟收購的

另外還有Swype(華為手機預置的輸入法,現在已不再更新了)

 

其他:
Swype輸入法 --安裝后點擊桌面相應圖標后啟用該輸入法,下載中文、日文等語言包

SwiftKey 輸入法支持的國家語言(中日韓英等……)
https://support.swiftkey.com/hc/en-us/articles/201598431-What-languages-are-currently-supported-for-SwiftKey-on-Android-

觸寶輸入法國際版 --有廣告?
必應輸入法 ? ---經過實驗,發現必應輸入法無法輸入日語等,放棄!
---------------------------

 代碼實現輸入法默認設置:

import android.provider.Settings;//導入包
// compile 'com.jakewharton.timber:timber:2.7.1'

public class InputMethodUtil {
        /**
     * 若觸寶輸入法已安裝,則設其為系統默認輸入法
     * (寫入Android系統數據庫)
     */
    public static void setDefaultInputMethod(Context context) {
        //獲取系統已安裝的輸入法ID
        String[] methods = getInputMethodIdList(context);
        if (methods == null || methods.length == 0) {
            Timber.w(String.format("found no input method."));
            return;
        }

        //檢查是否安裝觸寶輸入法
        //觸寶輸入法ID "com.cootek.smartinputv5/com.cootek.smartinput5.TouchPalIME";
        String targetKeyword = "TouchPal";
        String value = "";
        for (String m : methods){
            Timber.d(String.format("find : %s", m));
            if (m.toLowerCase().contains(targetKeyword.toLowerCase())){
                value = m;//找到觸寶輸入法
            }
        }
        if (value == "") {
            Timber.w(String.format("didn't find " + targetKeyword));
            return;
        }

        //設置默認輸入法
        String key = Settings.Secure.DEFAULT_INPUT_METHOD;
        boolean success = Settings.Secure.putString(context.getContentResolver(), key, value);
        Timber.d(String.format("writeDbDefaultInputMethod(%s),result: %s", value,success));

        //讀取默認輸入法
        String current = Settings.Secure.getString(context.getContentResolver(),key);
        Timber.d(String.format("current default: %s",current));
    }

    /**
     * 獲取系統已安裝的輸入法ID
     * @param context
     * @return
     */
    public static String[] getInputMethodIdList(Context context) {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null && imm.getInputMethodList() != null) {
            String[] methodIds = new String[imm.getInputMethodList().size()];
            for (int i = 0; i <imm.getInputMethodList().size(); i++) {
                methodIds[i] = imm.getInputMethodList().get(i).getId();
            }
            return methodIds;
        }
        return new String[]{};
    }
}

 

ref:

Enabling third party input methods in Android on Chrome OS
https://nolirium.blogspot.com/2017/08/enabling-third-party-input-methods-in.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM