1

InputMethodServiceユーザーが自分のアプリにいる場合にのみ作成する必要があるサブクラスがあるため、ユーザーが Android 言語設定を介してそれを有効にすると、キーボードはすぐに非アクティブ化され、デフォルトのキーボードに戻されます。私のサブクラスは次のようになります:

public class CustomIME extends InputMethodService {

    @Override
    public void onCreate() {
        super.onCreate();

        // do onCreate() stuff and find current activity

        if(currentActivity != myActivity){
            switchBackToDefaultKeyboard(defaultKeyboard);
        }
    }

    public void switchBackToDefaultKeyboard(IME ime) {
        try {
            switchInputMethod(ime.getId());
        } catch (Exception e) {
            DebugLog.e("Switching failed"); // this always fails when called from onCreate()
        }
    }
}

コメントに書いたように、InputMethodService.switchInputMethod()内からキーボードを切り替えようとすると、メソッドは常に例外をスローしますonCreate()

例外メッセージは次のとおりです。

java.lang.SecurityException: Using null token requires permission android.permission.WRITE_SECURE_SETTINGS

4

0 に答える 0