2013-07-26 3 views
2

키보드가 필요한 원격 앱을 만들고 있습니다. 나는 EditText를 사용하지 않고 있으며, 실제로 그것을 호출하도록 강요하고 있습니다. 나는 Enter 키를 누를 때Android의 onKeyDown에 Enter 키 캡처

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    int asciiKey = -1; 
    if (keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z) { 
     asciiKey = keyCode - KeyEvent.KEYCODE_A + 'A'; 
    } else if (keyCode==KeyEvent.KEYCODE_DEL) { 
     asciiKey = 8; 
    } else if (keyCode==KeyEvent.KEYCODE_ENTER) { 
     asciiKey = 13; 
    } else { 
     asciiKey = event.getUnicodeChar(event.getMetaState()); 
    } 
    out.println("k "+asciiKey); 
    return super.onKeyDown(keyCode, event); 
} 

그러나, 그것의 : 활동에

, 내 서버에서 처리 가능한 아스키 코드로 안드로이드 키 코드를 변환하고 전송하는 반 지능형 onKeyDown 코드를 전송하지 않습니다 (저는 Jelly Bean Default와 Hacker 's Keyboard를 시도했습니다). "-1"도 아닙니다. 이 메서드는 호출되지 않습니다. 대부분의 다른 키 (Numbers, Letters, Backspace, Some Symbols)에서 작동하므로 앱 자체가 아닙니다.

키보드를 호출하고 나중에 숨 깁니다 코드 :

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 

내가 부족 뭔가가 있나요? 또한 Android 키 코드를 Ascii 키 (특히 java.awt.Robot으로 복제 가능)로 변환하는 더 좋은 방법이 있습니다. 사전에 어떤 도움

감사합니다.

답변

1

사용을 너무 Enter 키를 캡처하는이 기능을 찾기 위해 여기.

@Override 
public boolean dispatchKeyEvent(KeyEvent event) {

try { // if(event.getAction()== KeyEvent.ACTION_UP) { System.out.println(event.getAction() + " " + event.getKeyCode() + " - " + (char) event.getUnicodeChar()); } } catch (Exception ex) { ex.printStackTrace(); } return true; }
-1

은 키 코드

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

Log.d("KeyEvent", Integer.toString(KeyEvent.getKeyCode())); 

return super.onKeyDown(keyCode, event); 

}보다

을 로그인하십시오 키 코드 KeyEvent