软件编程
位置:首页>> 软件编程>> Android编程>> android实现扫码枪功能

android实现扫码枪功能

作者:cuncaojin  发布时间:2022-08-28 21:33:35 

标签:android,扫码枪

扫码枪扫码效果等同于键盘录入,会回调dispatchKeyEvent键盘按下事件。

开发环境:有线扫码枪,支持二维码

代码

1. 接收数据


/**
    * 扫码枪扫码处理
    */
   @Override
   public boolean dispatchKeyEvent(KeyEvent event) {
       if (event.getAction() == KeyEvent.ACTION_DOWN) {
           int keyCode = event.getKeyCode();
           char aChar = (char) event.getUnicodeChar();
           if (aChar != 0) {
               mStringBufferResult.append(aChar);
           }
           mHandler.removeCallbacks(mScanningFishedRunnable);
           //若为回车键,直接返回
           if (keyCode == KeyEvent.KEYCODE_ENTER) {
               mHandler.post(mScanningFishedRunnable);
           } else {
               //延迟post,若500ms内,有其他事件
               mHandler.postDelayed(mScanningFishedRunnable, 500L);
           }
           return true;
       }
       return super.dispatchKeyEvent(event);
   }

2. 处理数据


/**
* 二维码信息对象
*/
  private QRCode qrCodeBean;
  /**
  * 二维码信息原始数据容器
  */
  private StringBuilder mStringBufferResult = new StringBuilder();
  private Handler mHandler = new Handler();

private Runnable mScanningFishedRunnable = new Runnable() {
       @Override
       public void run() {
           scanOk = false;
           String qrcode = mStringBufferResult.toString();
           if (!TextUtils.isEmpty(qrcode)) {
               // 扫码确定参数
               Gson gson = new Gson();
               try {
                   qrCodeBean = gson.fromJson(qrcode, QRCode.class);
                   // 你的代码...
                   // 如果要支持中文,数据用可以URLEncoder/URLDecoder编解码
               } catch (JsonSyntaxException e) {
                   // 解析失败...
               } catch (UnsupportedEncodingException e) {
                   // 解码失败...
               } finally {
                   mStringBufferResult.setLength(0);
               }
           }
       }
   };

参考:Android设备蓝牙连接扫描枪获取扫描内容

来源:https://blog.csdn.net/cuncaojin/article/details/103593984

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com