Android 修改默认输入法

亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Android 修改默认输入法相关的知识,希望能为你提供帮助。
我们知道Android源码中默认的有三种输入法:英文,中文,日文。那么我们现在要把手机默认百度输入法应该怎么去做呢?
          首先,你需要内置百度输入法在你的工程里面。怎么内置呢,在package/app/目录下新键一个BaiduInput文件夹,把第三方的百度输入法和有一些库文件放在里面,关键是要在文件夹里面添加android.mk
       

Android 修改默认输入法

文章图片

    再看一下Android.mk里面写了那些东西
 
[java]  view plain  copy    
Android 修改默认输入法

文章图片
Android 修改默认输入法

文章图片
  1. LOCAL_PATH  :=  $(call  my-dir)   
  2.    
  3. ###############################################################################   
  4. include  $(CLEAR_VARS)   
  5. LOCAL_MODULE  :=  BaiduInput   
  6. LOCAL_MODULE_TAGS  :=  optional   
  7. LOCAL_SRC_FILES  :=  BaiduInput.apk   
  8. LOCAL_MODULE_CLASS  :=  APPS   
  9. LOCAL_MODULE_SUFFIX  :=  $(COMMON_ANDROID_PACKAGE_SUFFIX)   
  10. LOCAL_CERTIFICATE  :=  PRESIGNED   
  11.    
  12. LOCAL_REQUIRED_MODULES  :=  libbdEASRAndroid_v1_4_5  \   
  13.                                                 libBDVoiceRecognitionClient_V1  \   
  14.                                                 libchiperencoder_v1_2_1  \   
  15.                                                 libmmtScore  \   
  16.                                                 libprocmoi_v1_4  \   
  17.                                                 libprocmox_v1_4  \< /span> < /span>    
  18.    
  19. include  $(BUILD_PREBUILT)   
  20.    
  21. ###############################################################################   
  22.    
  23. include  $(CLEAR_VARS)   
  24. LOCAL_PREBUILT_LIBS  :=  libbdEASRAndroid_v1_4_5.so  \   
  25.                                                 libBDVoiceRecognitionClient_V1.so  \   
  26.                                                 libchiperencoder_v1_2_1.so  \   
  27.                                                 libmmtScore.so  \   
  28.                                                 libprocmoi_v1_4.so  \   
  29.                                                 libprocmox_v1_4.so  \< /span>    
  30.    
  31. LOCAL_MODULE_TAGS  :=  optional   
  32. include  $(BUILD_MULTI_PREBUILT)   
如果不添加Android.mk的话编译整个工程是编不到的,所以Android.mk是必须要添加的。最后一步不要忘了,一定要把你的新建的这个文件内置在整个工程里面,内置的路径(Andriod5.0)在/device/mediatek/mt6735/device.mk
 
 
[java]  view plain  copy    
Android 修改默认输入法

文章图片
Android 修改默认输入法

文章图片
  1. PRODUCT_PACKAGES  +=  BaiduInput   
  2. PRODUCT_PACKAGES  +=  libbdEASRAndroid_v1_4_5   
  3. PRODUCT_PACKAGES  +=  libBDVoiceRecognitionClient_V1   
  4. PRODUCT_PACKAGES  +=  libchiperencoder_v1_2_1   
  5. PRODUCT_PACKAGES  +=  libmmtScore   
  6. PRODUCT_PACKAGES  +=  libprocmoi_v1_4   
  7. PRODUCT_PACKAGES  +=  libprocmox_v1_4   
    好了,这样第三方的百度输入法就内置到你的整个工程里面了,那么怎么才能把这个输入法改为手机默认的输入法呢?
 
【Android 修改默认输入法】  1: 首先frameworks\base\packages\SettingsProvider\res\values\defaults.xml  添加如下字符串
[java]  view plain  copy    
Android 修改默认输入法

文章图片
Android 修改默认输入法

文章图片
  1.       < string  name="default_input_method"  translatable="false"> com.baidu.input/.ImeService< /string>    
      特别注意:com.baidu.input是APK的包名,ImeService是输入法 ID(服务名)   ID一定要正确!!
附上常用的输入法包名,ID
百度:com.baidu.input/.ImeService
讯飞:com.iflytek.inputmethod/.FlyIME
腾讯:com.tencent.qqpinyin/.QQPYInputMethodService
谷歌:com.google.android.inputmethod.pinyin/.PinyinIME
搜狗:com.sohu.inputmethod.sogou/.SogouIME
触宝:com.cootek.smartinput5/.TouchPalIME
 
2:然后在frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.Java
            增加如下代码
          loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.default_input_method);
          然后编一下SettingsProvider,再恢复出厂设置就OK了! 
 
转http://blog.csdn.net/lyjit/article/details/51075183








    推荐阅读