Уничтожение 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