2016-04-20 3 views
2

Ich möchte eine Schaltfläche in meiner benutzerdefinierten Tastatur, die beim Drücken wird die Tastatur auf die Standard-Benutzer-Tastatur wechseln. Ich habe herausgefunden, wie die Eingabetastatur wie folgt festgelegt:Wie ID des Benutzers erhalten Standard-Tastatur in Android

final String LATIN = "com.android.inputmethod.latin/.LatinIME"; 
final IBinder token = this.getWindow().getWindow().getAttributes().token; 
imm.setInputMethod(token, LATIN); 

In diesem Fall die Taste drücken, die ich um die Tastatur implementieren möchte wechseln Sie auf die Standardbenutzer angegeben Tastatur (LATIN Tastatur).

Das Problem ist in diesem speziellen Beispiel die Zeichenfolge wurde bereits angegeben.

Wie würde ich die Zeichenfolge der ID der Standardbenutzer angegebenen Tastatur finden, so dass ich die InputMethod einstellen kann.

Antwort

1

Sie können wie im folgenden Beispiel gerade aktive Tastatur-ID erhalten:

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

Wenn Ihre Soft-Tastatur zur Zeit für die Eingabe verwendet wird, wird der obige Code Ihrer Tastatur-ID zurück.

Aber man so etwas tun kann: Wenn Sie Ihre Eingabe Picker Schaltfläche geklickt wird, können Sie die Liste der Eingabemethoden zeigen können, und lassen Sie den Benutzer, was auch immer wählen, Input Method er mag:

InputMethodManager inputManager = (InputMethodManager) this.getBaseContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.showInputMethodPicker(); 

Die Der obige Code öffnet einen Systemdialog, in dem die Eingabemethode ausgewählt werden kann. Sie können auch die Liste der Eingabemethoden wie in dem folgenden Code abrufen:

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); 
Log.d("TAG", "Input Method ID: "+ getApplicationContext().getPackageName(); } 
Verwandte Themen