繁体   English   中英

Android Dev:从屏幕(软)键盘获取关键事件

[英]Android Dev: Getting key events from onscreen (soft) keyboard

我正在开发一个Android程序,用于分析用户的文本输入并测量打字速度,错误率,平均按键输入一个字符。 这样,我可以比较不同输入法的特征。 为此,我需要计算并记录用户在文本输入过程中进行的所有按键操作。

例如,使用基本qwerty键盘的用户必须为每个字母按下至少一个键。 但是,使用带有单词补全功能的键盘的用户将需要按下较少的键。 但是(平均)按键数是多少? 单词补全实际上会提高打字速度吗? 这些是我的程序将帮助回答的问题。

阅读其他帖子,我知道(默认情况下),屏幕键盘不会发送所有按键的按键事件。 物理(硬件)键盘可以,但是大多数移动设备没有物理键盘。 我也知道我可以实现TextWatcher来检测何时在EditText字段中键入字母。 但是,某些IME可能需要用户按一系列键才能输入单个字母(或单词)。 我需要处理中间键事件(即,通过计数和记录按键次数)。

我的问题:我如何在不修改IME用户体验(例如,自动完成,单词预测,T9歧义消除等)的情况下,从IME捕获每个按键事件(甚至是不触发键入字符的事件)? 这有可能吗?

在此先感谢您的时间。

您是否尝试听过TouchEvent
您是否尝试过使用View类中的onKeyPreIme() 借助这一功能,您可以在IME消耗按键之前捕获按键

这有可能吗?

仅通过编写自己的IME,AFAIK或将源获取到现有IME并进行检测即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM