2013-02-08 9 views
6

Ich entwickle eine SMS-Absender-App und möchte die Sprache kennen, die der Benutzer benutzt. Wenn der Benutzer eine Nachricht eintippt, wie kann ich dann die Sprache kennen, die er benutzt?Wie kann ich die Tastatursprache kennen? (en/fr)

+1

http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#getCurrentInputMethodSubtype%28%29 – hakiko

Antwort

10

erhalten den Manager Eingabetyp unter Verwendung:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

dann entscheiden, was davon zu bekommen, die nächsten Methoden verwenden:

http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#getCurrentInputMethodSubtype%28%29

oder: http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#getLastInputMethodSubtype()

zusammen mit diesem um das Gebietsschema des Eingabetyps zu erhalten:

http://developer.android.com/reference/android/view/inputmethod/InputMethodSubtype.html#getLocale()

+1

Hallo Mann, aber diese Lösung in API 11 verfügbar, und ich möchte das für Android verwenden 2.3! wie Sie Ihre Idee für niedrigere Versionen vor API 11 verwenden. – NrNazifi

+0

guter Punkt. Entschuldigung, dass ich es vermisse. Vielleicht ist es möglich, aus dem Android-Code zu lesen und zu sehen, ob es einen Weg gibt, um es für ältere Versionen zu überwinden. –

0

Es ist nicht möglich, die aktuelle Tastatursprache abzurufen. Android erlaubt nicht das Abrufen der aktuell konfigurierten Sprache, es gibt keine API.

4

Sie können Tastatursprache erhalten zuerst die locale der Gerätetastatur zu erfassen und dann bekommen die Locale Objekt von ihm. Beispiel:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    InputMethodSubtype ims = imm.getCurrentInputMethodSubtype(); 
    String localeString = ims.getLocale(); 
    Locale locale = new Locale(localeString); 
    String currentLanguage = locale.getDisplayLanguage(); 

Hier gibt currentLanguage Ihre Tastatursprache. Hoffe das hilft.

+0

Was sollen wir tun, wenn ims null ist? – Patzu

Verwandte Themen