赞
踩
由于系统自带的Latin输入法不支持遥控器操作,需要替换为RK的拼音输入法。
1)将LatinIME从mk中删除,让系统编译的时候不编译该apk
- --- a/Android/build/make/target/product/handheld_product.mk
- +++ b/Android/build/make/target/product/handheld_product.mk
- @@ -23,7 +23,6 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/media_product.mk)
- # /product packages
- PRODUCT_PACKAGES += \
- Browser2 \
- - LatinIME \
- preinstalled-packages-platform-handheld-product.xml \
- SettingsIntelligence \
- frameworks-base-overlays
2)添加PinyinIME的编译预装
- --- a/Android/device/rockchip/common/modules/rockchip_apps.mk
- +++ b/Android/device/rockchip/common/modules/rockchip_apps.mk
- @@ -20,3 +20,5 @@
- # RkVideoPlayer \
- # RkExplorer \
- # StressTest
- +PRODUCT_PACKAGES += \
- + PinyinIME
3)设置PinyinIME为默认输入法。这一步在网上搜了几个方案 ,但是都有些问题,后面自己试验用如下方式可以设置成功,即在InputManagerServices.java的buildInputMethodListLocked函数中添加设置默认输入法值的动作
- +++ b/Android/frameworks/base/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
- @@ -4560,6 +4560,26 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
- Slog.e(TAG, "buildInputMethodListLocked is not allowed until system is ready");
- return;
- }
- + String defaultIme = Settings.Secure.getString(mContext
- + .getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
- + if ( defaultIme == null ) {
- + final Resources res = mContext.getResources();
- + try{
- + String myIME = "com.android.inputmethod.pinyin/.PinyinIME";
- + if ( myIME != null && myIME.length() > 0 )
- + {
- + Settings.Secure.putString( mContext.getContentResolver(),
- + Settings.Secure.DEFAULT_INPUT_METHOD,
- + myIME );
- + Settings.Secure.putString( mContext.getContentResolver(),
- + Settings.Secure.ENABLED_INPUT_METHODS,
- + myIME );
- + }
- + } catch( Exception e ) {
- + }
- + }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。