Android 修改默认输入法

    我们知道Android源码中默认的有三种输入法:英文,中文,日文。那么我们现在要把手机默认百度输入法应该怎么去做呢?

     首先,你需要内置百度输入法在你的工程里面。怎么内置呢,在package/app/目录下新键一个BaiduInput文件夹,把第三方的百度输入法和有一些库文件放在里面,关键是要在文件夹里面添加Android.mk

   

  再看一下Android.mk里面写了那些东西

LOCAL_PATH := $(call my-dir)

###############################################################################
include $(CLEAR_VARS)
LOCAL_MODULE := BaiduInput
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := BaiduInput.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED

LOCAL_REQUIRED_MODULES := libbdEASRAndroid_v1_4_5 \
						libBDVoiceRecognitionClient_V1 \
						libchiperencoder_v1_2_1 \
						libmmtScore \
						libprocmoi_v1_4 \
						libprocmox_v1_4 \</span></span>

include $(BUILD_PREBUILT)

###############################################################################

include $(CLEAR_VARS)
LOCAL_PREBUILT_LIBS := libbdEASRAndroid_v1_4_5.so \
						libBDVoiceRecognitionClient_V1.so \
						libchiperencoder_v1_2_1.so \
						libmmtScore.so \
						libprocmoi_v1_4.so \
						libprocmox_v1_4.so \</span>

LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)
如果不添加Android.mk的话编译整个工程是编不到的,所以Android.mk是必须要添加的。最后一步不要忘了,一定要把你的新建的这个文件内置在整个工程里面,内置的路径(Andriod5.0)在/device/mediatek/mt6735/device.mk

PRODUCT_PACKAGES += BaiduInput
PRODUCT_PACKAGES += libbdEASRAndroid_v1_4_5
PRODUCT_PACKAGES += libBDVoiceRecognitionClient_V1
PRODUCT_PACKAGES += libchiperencoder_v1_2_1
PRODUCT_PACKAGES += libmmtScore
PRODUCT_PACKAGES += libprocmoi_v1_4
PRODUCT_PACKAGES += libprocmox_v1_4
  好了,这样第三方的百度输入法就内置到你的整个工程里面了,那么怎么才能把这个输入法改为手机默认的输入法呢?

 1: 首先frameworks\base\packages\SettingsProvider\res\values\defaults.xml 添加如下字符串
    <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了! 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值