안드로이드 keyevent (keycode)에 관련되어 질문드립니다.
uiautomator test중 uiobject의 settext가 한글 string을 입력하지 못한다는 것을 알게됬습니다. 소스를 파고 들어보니
KeyCharacterMap kcm;
kcm = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD);
KeyEvent[] events = kcm.getEvents("세종대왕빡침".toCharArray());
if(events != null) {
int len$ = events.length;
for(int i$ = 0; i$ < len$; ++i$) {
KeyEvent event2 = events[i$];
//do some work with event2.getKeyCode()
//i.e. mDevice.pressKeyCode(event2.getKeyCode);
}
}
events 자체가 null입니다. 한마디로 KeyCharaterMap에서 가져올수없는거같은데
그래서 찾아보니 hangul jamo 에 보면 ㄱ이 1100 인데 막상 그것도 안먹히고...(mDevice.pressKeyCode()에서 안먹힘..)
일단 전 안드로이드가 왜 unicode를 안따라가고 자기들만의 키코드를 새로 구현했는지가 의문이네요. 단지 배열을 바꾸기 위해서라면 (키코드 65는 Gmail이 열리던데 이런식으로 자주쓰는인텐트대용의 키코드를 앞쪽에배치하려는 것이라면) 정말 화가날거같습니다. 참을수가 없군요....
글이 장황했네요. 요약드리겠습니다.
1. uiautomator의 UiDevice.pressKeyCode()를 통해 한글을 입력하는 방법은 무엇인가요?.
일반 영어는 됨. 하지만 한글은 안됨.
2. 구글은 왜 키코드배열을 unicode를 사용하지 않는건가요?