2010-07-31 3 views
9

Как вы определяете, какой метод ввода активен в настоящий момент? Пользователь может изменить метод ввода (мягкую клавиатуру), долгое нажатие на поле редактирования текста. Из кода, как определить, какой метод ввода, выбранный пользователемAndroid: определение активного метода ввода из кода

+0

это трудно сказать что вы просите здесь. Можете ли вы предоставить больше контекста и некоторый код, чтобы выделить проблему? –

+0

К сожалению, я добавил тег для Android. В Android пользователь может изменить методы ввода, долгое нажатие на поле редактирования, и то, что я хочу знать, - это как запросить систему Android, чтобы определить, какой из многих возможных методов ввода пользователь выбрал. –

+0

Почему ваше приложение хочет это знать? – adamp

ответ

21

Я понимаю, что вы, вероятно, больше не нуждаетесь в этом, но кому-то может понадобиться ответ на этот вопрос. Вы можете использовать эту линию, чтобы получить строку идентификатор метода ввода в использовании:

String id = Settings.Secure.getString(
    getContentResolver(), 
    Settings.Secure.DEFAULT_INPUT_METHOD 
); 

Если вы хотите получить более подробную информацию о текущей клавиатуре, вы можете использовать:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    List<InputMethodInfo> mInputMethodProperties = imm.getEnabledInputMethodList(); 

    final int N = mInputMethodProperties.size(); 

    for (int i = 0; i < N; i++) { 

     InputMethodInfo imi = mInputMethodProperties.get(i); 

     if (imi.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) { 

      //imi contains the information about the keyboard you are using 
      break; 
     } 
    } 
Смежные вопросы