android - 如果某个键来自特定键盘,如何防止将其插入到 EditText 中

标签 android barcode-scanner

我正在使用蓝牙条形码扫描仪,就像蓝牙键盘一样,我想在我的用户扫描某些东西时处理按键,但我知道他可以在 Activity 中聚焦任何 EditText,所以我想检测他使用的是哪个键盘我的 KeyEvent 是这样的:

if KeyEvent.getDevice().getName().equals("Datalogic Scanner") //do stuff
else //let the edittext add the letter

并防止 EditText 被编辑,而是存储和处理扫描器发送的值。

我尝试在我的 Activity 中的 dispatchKeyEvent 中返回 true, 我尝试在 Activity 中的 onKeyDown 中返回 true, 我尝试在我的 EditText 上的 OnKeyListener 中返回 true 并覆盖我的 EditText 类上的 OnKeyDown,但没有任何效果,文本仍然插入到我的 EditText 中。

有什么想法吗?

最佳答案

尝试使用 dispatchKeyEvent像那样:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    return scanManager.handleDispatchKeyEvent(event);
}

在 scanManager 类中,你应该做类似的事情:

public boolean handleDispatchKeyEvent(KeyEvent event) {
// handle the event
return true;
} 

关于android - 如果某个键来自特定键盘,如何防止将其插入到 EditText 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017693/

相关文章:

android - 如何在按钮中创建简单的可绘制图层

barcode - ZPL-如何增加^ BC(Code 128)条形码的宽度

android-如何防止输入键/点击来自条形码扫描仪

android - 递归调用 onActivityResult

android - proguard - AppCompat 不支持 proguard/minify 后的当前主题功能

android - 从 Activity 中获取嵌套在导航 Controller 内的 fragment 实例

android - 单击后退按钮时音乐播放器崩溃

android - Delphi XE6 Firemonkey 表格

c# - ThreadPool 在这种情况下值得吗?

java - 无法使用 Scandit SDK 扫描某些条形码 - Android