2010-07-31 3 views
9

Wie ermitteln Sie, welche Eingabemethode gerade aktiv ist - Ein Benutzer kann die Eingabemethode (Softkey) durch langes Drücken auf ein Textbearbeitungsfeld ändern - Aus Code, wie ermittelt man was Eingabemethode, die der Benutzer gewählt hatAndroid: Ermitteln der aktiven Eingabemethode aus dem Code

+0

es schwierig ist, zu sagen, was du hier fragst. Können Sie mehr Kontext und Code bereitstellen, um das Problem hervorzuheben? –

+0

Entschuldigung - Ich habe das Tag für Android hinzugefügt - In Android kann der Benutzer Eingabemethoden durch langes Drücken auf ein Eingabefeld ändern und was ich wissen möchte, ist, wie man das Android-System fragt, welche der vielen möglichen Eingabemethoden der Benutzer hat ausgewählt. –

+0

Warum möchte Ihre App das wissen? – adamp

Antwort

21

Ich weiß, dass Sie das wahrscheinlich nicht mehr brauchen, aber jemand könnte die Antwort darauf wollen. Sie können diese Linie verwenden, um die String-ID der Eingabemethode in Verwendung zu erhalten:

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

Wenn Sie möchten mehr Informationen über die aktuelle Tastatur erhalten, können Sie verwenden:

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; 
     } 
    } 
Verwandte Themen