搜索

195

主题

282

帖子

3169

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3169
发表于 2021-9-9 11:10:48 7347 浏览 0 回复

MT6737 Android7.0内置输入法(讯飞输入法)

本帖最后由 七个柚子多少钱 于 2022-9-27 11:11 编辑

1.内置输入法需要修改的源码
  1. frameworks/base/packages/SettingsProvider/res/values/defaults.xml
  2. frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
复制代码
2.各个输入法的ID
输入法的ID一定要使用正确,否则设置默认启用内置的输入法的时候就会出现很多坑
  1. 讯飞输入法:com.iflytek.inputmethod/.FlyIME
  2. 搜狗输入法:com.sohu.inputmethod.sogou/.SogouIME
  3. 百度输入法:com.baidu.input/.ImeService
  4. 谷歌输入法:com.google.android.inputmethod.pinyin/.PinyinIME
  5. 触宝输入法:com.cootek.smartinput5/.TouchPalIME
  6. 腾讯输入法:com.tencent.qqpinyin/.QQPYInputMethodService
复制代码
3.内置讯飞输入法为例

1.将讯飞输入法内置到系统

添加目录packages/apps/iFlytekInput/,分别放入讯飞输入法的apk和添加Android.mk
  1. +++ b/packages/apps/iFlytekInput/Android.mk
  2. @@ -0,0 +1,11 @@
  3. LOCAL_PATH:= $(call my-dir)
  4. include $(CLEAR_VARS)
  5. LOCAL_MODULE := iFlytekInput
  6. LOCAL_MODULE_TAGS := optional
  7. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
  8. LOCAL_MODULE_CLASS := APPS
  9. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
  10. #LOCAL_CERTIFICATE := platform
  11. LOCAL_CERTIFICATE := PRESIGNED
  12. #LOCAL_DEX_PREOPT := false
  13. include $(BUILD_PREBUILT)
复制代码
  1. +++ b/device/mediatek/common/device.mk
  2. +PRODUCT_PACKAGES += iFlytekInput
复制代码

2.修改为默认输入法

  1. --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
  2. +++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
  3. @@ -216,4 +216,8 @@
  4.      <!-- Default setting for ability to add users from the lock screen -->
  5.      <bool name="def_add_users_from_lockscreen">false</bool>
  6. +      
  7. +       <string name="def_input_method" translatable="false">com.iflytek.inputmethod/.FlyIME</string>
  8. +       <string name="def_enabled_input_methods" translatable="false">com.iflytek.inputmethod/.FlyIME</string>
复制代码
  1. --- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
  2. +++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
  3. @@ -2562,6 +2562,10 @@ class DatabaseHelper extends SQLiteOpenHelper {
  4.              loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
  5.                      R.integer.def_sleep_timeout);

  6. +                       loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_input_method );
  7. +                       loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,R.string.def_enabled_input_methods);
复制代码

3.删除系统自带的输入法

在android7.0需要删除系统默认的输入法,否则无法正常打开讯飞输入法;
  1. rm -rf /packages/inputmethods/LatinIME/
复制代码










回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表