Android无需编辑文本即可获得条形码扫描仪输入 [英] android get barcode scanner input without edittext

查看:0
本文介绍了Android无需编辑文本即可获得条形码扫描仪输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一台物理条形码扫描仪,我希望在没有聚焦的EditText的情况下将其输入到应用中,即条形码。

我尝试在我的Activity中添加KeyListener。但是,它实现的方法(onKeyUponKeyDown等)都没有被调用。

然后我添加了dispatchKeyEvent,它起作用了,但调用的次数永远不会像条形码长度一样多。相反,在读取条形码之前,我视图中的某个随机button会从条形码扫描仪获得焦点。

String barcode = "";

@Override
public boolean dispatchKeyEvent(KeyEvent e) {
    char pressedKey = (char) e.getUnicodeChar();
    barcode += pressedKey;
    if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        Toast.makeText(getApplicationContext(), "barcode--->>>" + barcode, Toast.LENGTH_LONG)
                .show();
    }

    return super.dispatchKeyEvent(e);
}

我在中看到了几个问题,但没有一个真正给出具体的答案。

推荐答案

对我来说,对于条形码扫描仪(usb,参考STA pcs),下一个代码可以工作:

@Override
public boolean dispatchKeyEvent(KeyEvent e) {

    if(e.getAction()==KeyEvent.ACTION_DOWN){
        Log.i(TAG,"dispatchKeyEvent: "+e.toString());
        char pressedKey = (char) e.getUnicodeChar();
        barcode += pressedKey;
    }
    if (e.getAction()==KeyEvent.ACTION_DOWN && e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        Toast.makeText(getApplicationContext(), 
            "barcode--->>>" + barcode, Toast.LENGTH_LONG)
        .show();

        barcode="";
    }

    return super.dispatchKeyEvent(e);
}

这篇关于Android无需编辑文本即可获得条形码扫描仪输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆