android修改預設輸入法
今天無意間看到公司小賀寫了一篇挺不錯的文章,拿來學習一下。
相信好多朋友都改過預設輸入法,我也改過,只不過有一點沒注意到,就是切換語言後,預設輸入法會不會變的問題。今天看到了這一點,覺得可以拿過來讓大家也學學。
【宣告】本文件均是以marvell專案程式碼為例,別的平臺也可以類似修改
修改\frameworks\base\packages\SettingsProvider\res\values\defaults.xml該檔案中的<stringname="def_enable_input_methods"> 和<stringname="def_input_method">這兩項值便可以將第三方輸入法設定為開機預設輸入法。如下圖所示:
圖1
圖1中def_enable_input_methods的字面意思為:可用輸入法;
def_input_method的字面意思為系統預設輸入法。從圖中可知系統預設輸入法為訊飛輸入法。
獲取上面兩個key值的方法如下:
首先將需要預置的apk檔案adb install到手機中(或者匯入到T卡中安裝):
1.勾選要預設使用的輸入法,讓當前手機的輸入法為後安裝的第三方輸入法。
2.abdshell 進手機後將該檔案匯出,匯出命令為:adb pull data/data/com.android.providers.settings/databases/settings.db
圖2
3.用SQLite檢視工具開啟在secure中Data表中的最下面有enabled_input_methods和default_input_method這兩個,來控制系統的預設輸入法,將這兩個所對應的值填寫到defaults.xml檔案中。如下圖所示:
圖3
4.frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java中過載輸入法
圖4
經過如上的操作就完成了開機預設輸入法為第三方輸入法。我們大部分的同事都只修改到這裡,是可以達到目的,可是還有個小問題。
因為當切換系統語言後,輸入法會又變回android原生的輸入法英文輸入法,即androidkeyboard,原始碼的模組為LatinIME,後來經過marvell人員的技術支援,在/frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java該檔案內如下圖位置
加入如下程式碼來對預設輸入法進行判斷:
if("com.baidu.input".equals(imi.getPackageName())) {
return true;
}
這樣就避免了在切換系統語言時輸入法發生改變的狀況。
【注意】string的key值一定要與程式碼中的值相同。這樣就實現了設定預設輸入法的修改,如有問題請在後面回覆。
最後提醒大家的是,在修改後如果沒有效果,一定要檢查是否在別的路徑下有單拉的檔案。前幾天改預設輸入法一直無法成功,就是因為在vender路徑下有單拉的檔案導致。
相關推薦
android修改預設輸入法
今天無意間看到公司小賀寫了一篇挺不錯的文章,拿來學習一下。 相信好多朋友都改過預設輸入法,我也改過,只不過有一點沒注意到,就是切換語言後,預設輸入法會不會變的問題。今天看到了這一點,覺得可以拿過來讓大
Android系統預設輸入法的修改
1. frameworks\base\packages\SettingsProvider\res\values\defaults.xml 檔案中修改預設輸入法為搜狗輸入法 <stringname="config_default_input_metho
Android原始碼修改預設輸入法
前一陣子,應泰國客戶需求,需要在Android TV系統定製一個多語言輸入法,至少支援中、英、泰三種語言。拿到這個任務,對於至今還是小白的我來說,當然先去google一下有沒有大神專門做過符合要求的輸入法應用。很遺憾,網上移動終端倒是有不少滿足需求的輸入法,而且做得還
android 修改預設logcat列印級別
軟體版本:Android6.0 硬體平臺:MTK6797 關於系統預設的日誌級別問題,涉及到了一個系統屬性,就是persist.log.tag,那麼這個屬性是在哪裡初始化定義的呢? 在mtk原始碼的vendor/mediatek/p
android修改預設的logo
以freescale為例: 1.修改uboot啟動時的Freescale字樣 可以在u-boot中board/freescale/common/fsl_bmp_600x400.c改變影象。具體步驟如下: (1) 準備一張bmp格式的圖片,最好畫素是600x400的
Android修改預設瀏覽器為其他瀏覽器
[java] view plain copy public class Mai
Android替換/修改系統預設輸入法
各大輸入法的服務 ro.mtk_default_ime=com.tencent.qqpinyin.QQPYInputMethodService//預設qq輸入法 ro.mtk_default_ime=com.sohu.inputmethod.sogou.SogouIME//
android 全域性修改預設字型 沒有效果 填坑
最近有個需求要修改android app預設字型。網上有很多方法,但是最坑的是都沒有效果,但是最後還是解決了,不過不知道是什麼原因,如果知道的話歡迎留言(謝謝大家) 解決方案: 新增字型(.ttf)到工程目錄assets下, 我的是在assets在新建了一個fonts包。注意assets
修改Android系統預設時間
一 : 修改Android系統預設時間 原始碼路徑:frameworks/base/services/java/com/android/server/SystemServer.java 主要變數EARLIEST_SUPPORTED_TIME // The earliest suppo
Android系統新增新輸入法並設為預設輸入法
由於產品需求,需將Android原生輸入法先後替換成搜狗輸入法、百度輸入法、谷歌拼音輸入法,本文以替換為谷歌輸入法為例。 packages/apps下新建資料夾,將需替換的第三方輸入法apk放入該資料夾,編寫Android.mk檔案,一谷歌輸入法為例,如下: LOCAL_
Android MTK 8.1 設定預設輸入法
以實現訊飛輸入法為預設輸入法為例: 1.\vendor\mediatek\proprietary\packages\apps\SettingsProvider\res\values\defaults.xml 中宣告FlyIME輸入法 <!-- FlyIME--> <
Android O Settings原始碼流程分析(資料載入之獲取及修改預設設定屬性值)
Android O Settings 靜態介面篇 介面渲染篇 資料載入篇之一級選單 資料載入篇之二級選單 資料載入篇之獲取及修改預設設定屬性值 搜尋欄篇 載入預設設定值及修改:(涉及SettingsProvider) 示例:(裝置自動亮
Android系統修改預設鈴聲
Andriod手機的鈴聲預設儲存在system/media/audio/下面,有四個資料夾,分別是alarms,notifications,ringtones,ui。對應鬧鐘、通知、鈴聲、UI音效。root的手機可以直接替換修改相應目錄下的檔案來修改鈴聲。那這些聲音是從哪裡來的呢。由於需要修改預設的
Android Studio修改預設Activity繼承AppCompatActivity
在Android Studio中新建Activity預設繼承AppCompatActivity,感覺這點十分不爽,找了很久,終於發現在Android Studio安裝目錄下有個模板檔案,修改其中的引數即可。 這是那個檔名: common_globals.xml.ftl
修改Android Studio預設的jdk版本
File -> other settings -> default settings 找到 Java compiler 修改 jdk 版本 &nbs
Android系統移植與除錯之-------)如何修改Android系統預設顯示
1、首先解決【設定】介面預設顯示【開發者選項】的問題 檢視原始碼:packages/apps/Settings/src/com/android/settings/SettingsActivity.java 在updateTilesList(List target)方法中,可以找到【開發
Android 7.0 刪除原生輸入法(AOSP)&更換系統預設輸入法
一、刪除原生輸入法 1 . 刪除build/target/product/core.mk 檔案下的原生輸入法: PRODUCT_PACKAGES += \ BasicDreams \ BlockedNumberProvider \
Android替換系統預設輸入法
由於產品需求,需將Android原生輸入法先後替換成搜狗輸入法、百度輸入法、谷歌拼音輸入法,本文以替換為谷歌輸入法為例。 packages/apps下新建資料夾,將需替換的第三方輸入法apk放入該資料夾,編寫Android.mk檔案,一谷歌輸入法為例,如下: LOCAL_
Android Studio 使用技巧:修改預設build.gradle
在專案中發現一些好用的外掛和庫,就想預設在每個工程裡使用,就想到了找找如何直接修改預設工程的build.gradle檔案,經過多方面查詢資料,可以使用下面的方法來改。 比如說有一個好用的butterKnife這個庫,需要新增buildscript的dependencie
Android修改圓形進度條ProgressBar的預設顏色
前言 有時候系統預設的圓形進度條不能滿足我們的需求,那麼下面我們來對預設的顏色和樣式進行一個修改。 效果圖 實現程式碼 因為是圓形進度條,我們需要設定下面這個屬性 android:indet