Androidの移植でデフォルトのIMEを設定する方法は?

android ime
Androidの移植でデフォルトのIMEを設定する方法は?
  • build / target / product / generic.xmlで `PinyinIME`を追加して追加します
    構築します。

  • makefileで CUSTOM_LOCALES:= zh_CN en_US`を設定し、
    `ADDITIONAL_BUILD_PROPERTIES:= persist.sys.timezone = Asia / Shanghai persist.sys.language = zh persist.sys.country = CN
    USおよびCNのみを使用可能にし、CNをデフォルトに設定します。

ただし、デフォルトの言語設定はCNですが、電話のデフォルトのIMEは引き続きLatinIMEです。 PinyinIMEでは、「values-zh / bools.xml」に「true」が含まれます

目標を達成するにはどうすればよいですか?

  4  3


ベストアンサー

http://hi.baidu.com/wishwingliao/blog/item/65a2d03f7dde8dd17d1e71ec.htmlによる回避策。 frameworks \ base \ core \ res \ res \ values \ config.xmlに次のように追加します

com.android.inputmethod.pinyin/.PinyinIME

frameworks \ base \ services \ java \ com \ android \ server \ InputMethodManagerService.javaで、buildInputMethodListLocked()に以下を追加します

String defaultIme = Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
    //leo

    if ( defaultIme == null )
    {
        final Resources res = mContext.getResources();
        try
        {
            //frameworks\base\core\res\res\values\config.xml
            String myIME = res.getString( com.android.internal.R.string.config_default_input_method );
            if ( myIME != null && myIME.length() > 0 )
            {
               Settings.Secure.putString( mContext.getContentResolver(),
                        Settings.Secure.DEFAULT_INPUT_METHOD,
                        myIME );
            }
        }

        catch ( Exception e )
        {
        }
    }

3


タイトルとURLをコピーしました