2010-12-04 5 views
2

사용자의 텍스트 입력을 분석하고 입력 속도, 오류율, 평균 키 누름을 측정하여 한 문자를 입력하는 Android 프로그램을 개발 중입니다. 그렇게함으로써 다양한 입력 방법의 특성을 비교할 수 있습니다. 이렇게하려면 텍스트 입력 프로세스 중에 사용자가 누른 모든 키 누름을 계산하고 기록해야합니다.Android Dev : 화면 (소프트) 키보드에서 키 이벤트 받기

예를 들어, 기본 쿼티 키보드를 사용하는 사용자는 각 문자에 대해 적어도 하나의 키를 눌러야합니다. 그러나 단어 완성과 함께 키보드를 사용하는 사용자는 더 적은 수의 키를 눌러야합니다. 그러나 얼마나 많은 주요 프레스가 (평균적으로) 이루어 집니까? 단어 완성은 실제로 타이핑 속도를 향상 시키는가? 이것이 내 프로그램이 도움이 될 질문입니다.

다른 게시물을 읽고, 나는 (기본적으로) 화면상의 키보드가 모든 키 누름에 대한 키 이벤트를 보내지 않는다는 것을 알고 있습니다. 물리적 (하드웨어) 키보드가 있지만 대부분의 모바일 장치에는 실제 키보드가 없습니다. 또한 EditText 필드에 문자가 입력 된 경우이를 감지 할 수있는 TextWatcher를 구현할 수 있음을 알고 있습니다. 그러나 일부 IME는 사용자가 단일 문자 (또는 단어)를 입력하기 위해 일련의 키를 눌러야 할 수도 있습니다. 중간 키 이벤트 (즉, 키 누름을 계산하고 로깅)를 처리해야합니다.

내 질문 : IME의 사용자 경험 (예 : 자동 완성, 단어 예측, T9 모호성 제거 등)을 수정하지 않고 IME의 모든 키 누르기 이벤트 (입력 된 문자를 트리거하지 않는 이벤트조차도)를 캡처하는 방법은 무엇입니까?)? 이것은 가능한가?

미리 감사드립니다.

답변

0

이 경우에도 가능합니까?

자신의 IME, AFAIK를 작성하거나 소스를 기존 IME에 가져 와서 계측하는 방법으로 만 가능합니다.

+0

나는 그럴 수도 있습니다. 귀하의 의견을 보내 주셔서 감사합니다. – StevenC

0

TouchEvent s를 수신하려고 시도 했습니까?
View 클래스의 onKeyPreIme()을 사용하려고 했습니까? 이 버튼을 사용하면 IME에서 소모되기 전에 키를 누를 수 있습니다.

관련 문제