1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android百度输入法源码 Android内置第三方输入法

android百度输入法源码 Android内置第三方输入法

时间:2020-01-21 19:53:50

相关推荐

android百度输入法源码 Android内置第三方输入法

Android内置第三方输入法

本篇讲诉如何再安卓源码中内置第三方输入法,并设为默认输入法启动,以及过程中可能引起的一些其他系统Bug处理:

内置输入法关联源码

各第三方输入法ID

以讯飞为例内置方法

设置默认首选第三方输入法引起的系统问题

一、内置输入法关联源码

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

二、各第三方输入法ID

输入法的ID一定要使用正确,否则设置默认启用内置的输入法的时候就会出现很多坑,比如我在内置讯飞的时候在网上查找讯飞输入法ID,写成了com.iflytek.inputmethod/.iFlyIME,导致默认不能开启讯飞浪费了很多时间。以下是整理的各输入法ID的正确值,仅供参考!

讯飞输入法:com.iflytek.inputmethod/.FlyIME

搜狗输入法:com.sohu.inputmethod.sogou/.SogouIME

百度输入法:com.baidu.input/.ImeService

谷歌输入法:com.google.android.inputmethod.pinyin/.PinyinIME

触宝输入法:com.cootek.smartinput5/.TouchPalIME

腾讯输入法:com.tencent.qqpinyin/.QQPYInputMethodService

三、内置讯飞输入法

关于如何内置应用的方法这里就不再过度的记录,具体见[内置应用][/u014304560/article/details/73470127];

从官网获取讯飞输入法的apk,并内置到系统中

将该apk内置到系统中,安卓mk文件写法如下:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := FlyIME

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_MODULE_CLASS := APPS

LOCAL_PACKAGE_NAME := FlyIME

LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_APPS)

LOCAL_SRC_FILES := FlyIME.apk

LOCAL_CERTIFICATE := PRESIGNED

LOCAL_PREBUILT_JNI_LIBS := \

lib/armeabi/libcom_iflytek_inputmethod_bundlesetting.so \

lib/armeabi/libcom_iflytek_inputmethod_mmp.so \

lib/armeabi/libdexopt.so \

lib/armeabi/libMetaVAD-v1.so \

lib/armeabi/libmsc-v8.so \

lib/armeabi/libNativeCrashCollect.so \

lib/armeabi/libsmartaiwrite-jni-v23.so \

lib/armeabi/libvadLib-v5.so \

lib/armeabi/libvipfont.so

#LOCAL_MULTILIB := 64

include $(BUILD_PREBUILT)

3.源代码的修改

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

添加一行:

com.iflytek.inputmethod.FlyIME

alps/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

private void loadSecureSettings(SQLiteDatabase db) {

SQLiteStatement stmt = null;

try {

stmt = pileStatement("INSERT OR IGNORE INTO secure(name,value)"

+ " VALUES(?,?);");

...

...

loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,

R.string.default_input_method);

...

...

}

}

增加loadStringSetting设置默认输入法一行代码。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。