Android 读取扫码枪的内容,可以读取条形码 ,二维码

很多文章都说 码枪其实相当于一个物理输入设备 ,获取呢,其实代码并不多,下面来实现下效果

,这里已经用在了项目 效果还非常不错,

方法 1 

public class MainActivity extends AppCompatActivity {
    private EditText edt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edt = findViewById(R.id.edt);

        edt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (event.getAction() == KeyEvent.ACTION_UP) {
                    String str = v.getText().toString().trim();
                    edt.setText(str);
                }
                return true;
            }
        });

}

}

方法二 如果没事EditText 这个时候可以使用 dispatchKeyEvent 来实现效果了

带入如下

public class NoEditActiviy extends AppCompatActivity {

    private TextView txt;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.no_edit_activity_layout);
        txt = findViewById(R.id.txt);
    }
    String barcode ="";
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        if(event.getAction()== KeyEvent.ACTION_DOWN){
            char pressedKey = (char) event.getUnicodeChar();
            barcode += pressedKey;
        }
        if (event.getAction()==KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
            txt.setText(barcode);
            barcode="";
        }
        return super.dispatchKeyEvent(event);
    }

}

这个扫码枪不持支中文,

demo 地址,希望能更好的帮助到您

你可能感兴趣的:(Android,知识点记录)