亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Android 修改默认输入法相关的知识,希望能为你提供帮助。
我们知道Android源码中默认的有三种输入法:英文,中文,日文。那么我们现在要把手机默认百度输入法应该怎么去做呢?
首先,你需要内置百度输入法在你的工程里面。怎么内置呢,在package/app/目录下新键一个BaiduInput文件夹,把第三方的百度输入法和有一些库文件放在里面,关键是要在文件夹里面添加android.mk
文章图片
再看一下Android.mk里面写了那些东西
[java] view plain copy
文章图片
文章图片
- 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)
[java] view plain copy
文章图片
文章图片
- 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
【Android 修改默认输入法】 1: 首先frameworks\base\packages\SettingsProvider\res\values\defaults.xml 添加如下字符串
[java] view plain copy
文章图片
文章图片
- < string name="default_input_method" translatable="false"> com.baidu.input/.ImeService< /string>
附上常用的输入法包名,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
推荐阅读
- android-解决EditText的inputType为Password时, 字体不一致的问题
- Android 反编译初探 应用是如何被注入广告的
- Android5.1和Android6.0定时编译项目方法 (转)
- 安卓屏幕适配
- 8.Android 系统状态栏沉浸式/透明化解决方案
- Unity3D 实现简单的语音聊天 [Android版本]
- Android ViewPager切换之PageTransformer接口中transformPage方法解析
- Android--Intent(意图)
- 为开发者准备的 Android 函数库(2016 年版)