【发布时间】:2019-06-19 05:33:39
【问题描述】:
我有一个问题。
我正在安卓设备上制作Keystroke dynamics 应用程序。
现在,我使用度量字符串和EditText 创建一个活动。我想在软键盘上捕捉KeyDown 和KeyUp 事件。
我的问题是,在使用 Java 的 Android 上捕获 KeyUp 和 KeyDown 的最佳方法是什么?如果EditText 是个不错的选择?如果它有方法来捕捉任何按键?
编辑
我想从上面的字符串中检测键并测量按下它的时间,(例如在KeyDown 上开始测量并在KeyUp 上停止)。如果可能的话,我想阻止我的test string 中未提及的其他键(它的 9RJhl6aH0n,就像在我的屏幕中一样)
EDIT2
到目前为止,我所取得的成就是这样的,但是当我编写以下代码行时,我的应用程序在 default 上崩溃了:measureText.setText("")。它工作得很好,但它仍然不会在KeyDown(或KeyPress)上触发。这些方法只在KeyUp 上运行,当用户刚刚输入字母时。顺序很重要!
measureText.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable arg0) {
switch(measureText.getText().toString()){
case "9":
break;
case "9R":
break;
case "9RJ":
break;
case "9RJh":
break;
case "9RJhl":
break;
case "9RJhl6":
break;
case "9RJhl6a":
break;
case "9RJhl6a0":
break;
case "9RJhl6a0n":
break;
default:
measureText.getText().clear();
break;
}
return;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
return;
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
return;
}
});
【问题讨论】:
-
您想计时按键吗?还是只检测按键?
-
我有一个
test-string(我添加了我的看法)。我希望用户键入该字符串。我想验证他是否按下了我的test-string中提到的字符键。当他按下正确的键时,我开始根据stopwatch或Java中的类似内容来测量时间。如果我能阻止机会按下我在帖子中粘贴在屏幕上的test-string中没有的键,那就太好了 -
使用调度事件@michasaucer
-
在
Android文档中我找不到在我的情况下使用它的方法 -
我正在回答我的问题,请看你是否覆盖了这个方法。
标签: java android biometrics