В Android я хочу программно проверить, является ли InputMethod, предоставленный моим приложением, текущим активированным методом ввода или нет.
В настоящее время я использую трюк: определить, является ли мойInputMethodService запущен или нет.
public boolean isInputMethodEnabled() {
ActivityManager activityManager = (ActivityManager).getSystemService(ACTIVITY_SERVICE);
List<RunningServiceInfo> servicesInfo = activityManager.getRunningServices(Integer.MAX_VALUE);
for (RunningServiceInfo serviceInfo : servicesInfo) {
if (MyInputMethodService.class.getName().equals(serviceInfo.service.getClassName())) {
return true;
}
}
return false;
}
В целом это работает хорошо, но не удается, когда приложение обновляется: мой метод ввода все еще выбран, но служба еще не запущена.Служба будет запущена, когда клавиатура потребуется в первый раз, и до тех пор isInputMethodEnabled () будет возвращать значение false.
Итак мой вопрос :знаете другой способ проверить, выбран ли мой метод ввода, или вы знаете способ перезапустить службу метода ввода после обновления, не показывая текстовое представление?