Latin输入法怎么默认勾选几种语言

本文介绍了如何在Latin输入法中设置默认勾选多种语言的方法,适用于MTK平台设备。
摘要由CSDN通过智能技术生成

Latin输入法怎么默认勾选几种语言

[DESCRIPTION]

Latin输入法怎么默认勾选几种语言,Latin IME 不使用系统默认的语言

[SOLUTION]

【GB】
提供简单的sample code,如默认将俄语、英文、法语输入法勾选:
1.新增文件LatinImeReceiver.JAVA
package com.android.inputmethod.latin;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.util.Log;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
//import android.view.inputmethod.InputMethodSubtype;
import android.text.TextUtils;
public class LatinImeReceiver extends BroadcastReceiver {
private static final String TAG = LatinImeReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
Log.d("LatinImeReceiver", "step1");
SharedPreferences sp = context.getSharedPreferences("com.android.inputmethod.latin_preferences",
Context.MODE_PRIVATE);
boolean hasSet = sp.getBoolean("has_set", false);
if (!hasSet) {
Log.d("LatinImeReceiver", "step2");
Editor editor = sp.edit();
Log.d("LatinImeReceiver", "step3");
editor.putString(LatinIME.PREF_SELECTED_LANGUAGES, "en_US,ru,fr"); //默认将英语、俄语勾选,具体该怎么写
可以参考inputlanguageselection.java中的WHITELIST_LANGUAGES
editor.putBoolean("has_set", true);
Log.d("LatinImeReceiver", "step4");
//editor.commit();
SharedPreferencesCompat.apply(editor);
Log.d("LatinImeReceiver", "step5");
}
}
将其放置到路径packages/inputmethods/LatinIME/java/src/com/android/inputmethod/latin文件夹下面
2.注册intent,在packages/inputmethods/LatinIME/java/androidManifest.xml中增加
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
权限
并在最后面加入LatinImeReceiver:
<receiver android:name="LatinImeReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
3 重新编译整个工程
【ICS】
1.在mediatek/config/{projectname}/ProjectConfig.mk中修改如下的config,只需要把默认的语言加在后边即可
DEFAULT_LATIN_IME_LANGUAGES = en_US hi
DEFAULT_LATIN_IME_LANGUAGES后面的格式需要与packages\inputmethods\LatinIME\java\res\xml\method.xml中的
android:imeSubtypeLocale="XXX"字符相匹配,后面添加的语言要与“XXX”相同,例如如果要加印度语言
DEFAULT_LATIN_IME_LANGUAGES = en_US hi 中间用空格隔开。这个后面的格式与MTK_PRODUCT_LOCALES不一样,
MTK_PRODUCT_LOCALES后面是系统的语言以及要编译到系统中的资源的配置。
2.在LatinIMEReceiver.java中 setDefaultSubtypes函数中增加红色部分
private void setDefaultSubtypes(Context context) {
final String serviceName = "com.android.inputmethod.latin/.LatinIME";
final String currentPackageName = "com.android.inputmethod.latin";
final String enable = Settings.Secure.getString(context.getContentResolver(),
Settings.Secure.ENABLED_INPUT_METHODS);
final InputMethodManager imm = (InputMethodManager) context.getSystemService(
Context.INPUT_METHOD_SERVICE);
final StringBuilder builder = new StringBuilder();
// Get sub type hash code
for (InputMethodInfo info : imm.getInputMethodList()) {
if (currentPackageName.equals(info.getPackageName())) {
for (int i = 0; i < info.getSubtypeCount(); i++) {
final InputMethodSubtype subtype = info.getSubtypeAt(i);
final String locale = subtype.getLocale().toString();
if (isDefaultLocale(locale)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值