Уничтожение InputMethodService в момент его создания

У меня есть подкласс 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

0 ответов

Другие вопросы по тегам