2013-02-08 14 views
6

Rozwijam aplikację do wysyłania wiadomości SMS i chcę znać język, z którego korzysta użytkownik. więc kiedy użytkownik pisze wiadomość, skąd mam wiedzieć, z jakiego języka korzysta?Jak mogę poznać język klawiatury? (en/fr)

+1

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

Odpowiedz

10

dostać kierownika input type za pomocą:

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

następnie wybrać, co się z nim za pomocą kolejnych metod:

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

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

razem z tym, aby uzyskać ustawienia regionalne typu wejściowego:

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

+1

Witam, ale to rozwiązanie jest dostępne w interfejsie API 11 i chcę go użyć dla Androida 2.3! jak wykorzystać swój pomysł na niższe wersje przed API 11. – NrNazifi

+0

dobry punkt. przepraszam za brakujące. możliwe, że można odczytać z kodu androida i sprawdzić, czy istnieje sposób na pokonanie go w starszych wersjach. –

0

Nie można odzyskać bieżącego języka klawiatury. Android nie zezwala na pobieranie aktualnie skonfigurowanego języka, nie ma żadnego interfejsu API.

4

Można dostać język klawiatury najpierw wykrywania locale z klawiatury urządzenia, a następnie uzyskanie obiektu Locale od niego. Na przykład,

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(); 

Tutaj currentLanguage dadzą język klawiatury. Mam nadzieję że to pomoże.

+0

Co powinniśmy zrobić, gdy ims jest zerowe? – Patzu

Powiązane problemy