我是靠谱客的博主 清脆汽车,这篇文章主要介绍android实现扫码枪功能,现在分享给大家,希望可以做个参考。

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

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

代码

1. 接收数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/** * 扫码枪扫码处理 */ @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. 处理数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/** * 二维码信息对象 */ 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设备蓝牙连接扫描枪获取扫描内容

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。

最后

以上就是清脆汽车最近收集整理的关于android实现扫码枪功能的全部内容,更多相关android实现扫码枪功能内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(108)

评论列表共有 0 条评论

立即
投稿
返回
顶部