ОК, после некоторых исследований я нашел решение этой проблемы - мне пришлось реализовать интерфейс KeyEvent.Callback и переопределить метод onKeyDown.Этот метод вводит мне код клавиши, который был нажат, и я должен перевести его на символ на языке, на котором я хочу написать. Вот как выглядит код:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Toast.makeText(getApplicationContext(),"Keycode="+keyCode,Toast.LENGTH_LONG).show();
handleKey('ש');
return true;
}
public void handleKey(int keyCode)
{
InputConnection inputConnection = getCurrentInputConnection();
if (inputConnection != null) {
switch(keyCode) {
case Keyboard.KEYCODE_DELETE :
CharSequence selectedText = inputConnection.getSelectedText(0);
if (TextUtils.isEmpty(selectedText)) {
inputConnection.deleteSurroundingText(1, 0);
} else {
inputConnection.commitText("", 1);
}
break;
default :
char code = (char) keyCode;
inputConnection.commitText(String.valueOf(code), 1);
}
}
Здесь ссылка нагде я нашел это решение в документации Google: https://developer.android.com/training/keyboard-input/commands