第三方输入法导入
開發過程中有時需要導入第三方的輸入法,比較多的是注音輸入法(臺灣)。
這里以某注音輸入法為例:
1,預裝輸入法的apk(略)
2,將輸入法預設為中文繁體的默認輸入法
3,切換語言時,輸入法會隨著語言變化(切到繁體使用注音輸入法)
以Android 8.0為例:
預設注音輸入法為默認輸入法:
frameworks\base\core\res\res\values\config.xml
(overlay機制下在overlay\frameworks\base\core\res\res\values\config.xml)
修改config.xml中的字段config_enabled_input_methods和config_default_input_method。
config_enabled_input_methods為輸入法數組,每個參數用:隔開。
config_default_input_method為默認輸入法。
不同國家和地區的使用不同values來區分。
另外,需要在DatabaseHelper中配置預設值:
frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java的loadSecureSettings方法中
這樣默認燒機出來,輸入法就會隨著默認語言的改變而變化。
切換語言的時候輸入法跟隨:[此方法不是最終方法,請謹慎導入]
frameworks\base\core\java\com\android\internal\inputmethod\InputMethodUtils.java
其中InputMethodListBuilder中的fillImes方法中修改:
此對策是因為未找到設置國家或地區與對應輸入法默認對應關系的地方,如果有朋友知道在更合理的地方修改,望告知,不甚感激。
相關代碼:
InputMethodManagerService.java
InputMethodUtils.java
config.xml
DatabaseHelper.java
參考博客:https://blog.csdn.net/nei504293736/article/details/51599733
https://blog.csdn.net/wlwl0071986/article/details/47680807
總結
- 上一篇: python dialect='exce
- 下一篇: c#字符串操作自我总结