2010-12-04 77 views
2

我正在開發一個Android程序來分析用戶的文本輸入並測量打字速度,錯誤率,平均按鍵輸入單個字符。通過這樣做,我可以比較不同輸入法的特點。爲此,我需要統計和記錄用戶在文本輸入過程中所做的所有按鍵。Android Dev:從屏幕(軟)鍵盤獲取重要事件

例如,使用基本QWERTY鍵盤的用戶必須每個字母至少按一個鍵。但是,使用鍵盤完成詞彙的用戶需要按下更少的鍵。但是有多少按鍵(平均)呢?單詞完成是否可以提高打字速度?這些是我的程序將幫助回答的問題。

閱讀其他文章,我知道(默認情況下),屏幕鍵盤不會發送所有按鍵的按鍵事件。物理(硬件)鍵盤可以,但大多數移動設備沒有物理鍵盤。我也知道我可以實現TextWatcher來檢測在EditText字段中輸入字母的時間。但是,某些IME可能需要用戶按一系列鍵才能輸入單個字母(或單詞)。我需要處理中間鍵事件(即通過計數和記錄按鍵)。

我的問題:如何在不修改IME的用戶體驗(如自動完成,單詞預測,T9消歧等)的情況下從IME捕捉每個按鍵事件(即使是不觸發鍵入字符的事件) )?這甚至有可能嗎?

提前感謝您的時間。

回答

0

這甚至可能嗎?

僅通過編寫自己的IME,AFAIK或將源代碼獲取到現有的IME並進行檢測。

+0

我害怕可能是這種情況。感謝您的輸入。 – StevenC 2010-12-06 17:02:00

0

您是否試圖聽TouchEvent s?
您是否嘗試使用View類中的onKeyPreIme()?與這一個你可以趕上按鍵之前,他們被消費IME