首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

MTK Android L 設定第三方輸入法為預設:systemRunning() 未調用,最終在 settings-config.xml 或 system.prop 配置 ro.mtk_default_ime 解決

     編輯:程式設計疑難解答

MTK 平台 Android L 設定預設輸入法,官方 FAQ 建議在 `InputMethodManagerService.java` 的 `systemRunning()` 設定 `preInstalledImeName`,或在 `system.prop` 加 `ro.mtk_default_ime`。但實測 `systemRunning()` 不被調用,Log 無輸出。

最終解決方案

發現廠商自定義配置檔 **`vendor/tinno/qbee660/trunk/etc/settings-config.xml`** 覆寫了預設輸入法:



com.android.inputmethod.latin/.LatinIME
com.android.inputmethod.latin/.LatinIME

兩種修正方式

  1. 直接修改 settings-config.xml(最直接):
    
    com.thirdparty.ime/.MyIME
    com.thirdparty.ime/.MyIME
    
  2. 註釋 settings-config.xml 並改用 system.prop(較標準):
    
    
    # system.prop
    ro.mtk_default_ime=com.thirdparty.ime/.MyIME
    

驗證步驟

  1. 編譯燒錄映像。
  2. 開機進入 Settings → Language & Input → Current keyboard,確認顯示目標輸入法。
  3. `adb shell settings get secure default_input_method` 應返回目標包名/類名。

關鍵教訓:**MTK 客製化層極深,系統層 API 常被廠商配置檔覆寫**,遇到系統層設定不生效時,優先搜尋 `vendor/` `device/` 下的 `settings-config.xml`、`system.prop`、`overlay` 等配置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved