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


猜你喜欢
- 在实际的工作中直接使用反射的机会比较少,有印象的就是一次自己做的WinForms小工具的时候利用反射来动态获取窗体上的每个控件,并且为必要的
- Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能
- 一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类
- JAVA简单写学生信息管理系统,实现学生信息的输入、查询、修改、删除操作package Week;import jdk.internal.u
- thinking in java3中的多态People are often confused by other, non-object-or
- 本文实例讲述了Spring和Hibernate的整合操作。分享给大家供大家参考,具体如下:一 web配置<?xml version=&
- 目录操作创建目录File类中有两个方法可以用来创建文件夹:mkdir( )方法创建一个文件夹,成功则返回true,失败则返回false。失败
- 下文我们介绍两种双击事件拦截的方式1.通过Android的事件分发机制进行拦截(dispatchTouchEvent)话不多说,直接上代码:
- 为了实现不同环境构建的不同需求,这里使用到了 profile。因为 profile 能够在构建时修改 pom 的一个子集,或者添加额外的配置
- 本文总结三种用于安卓录屏的解决方案:adb shell命令screenrecordMediaRecorder, MediaProjectio
- 前言在一些项目中,经常会遇到需要把当前线程中的上下文传递到其他线程中的情况,比如某项目包含国际化操作,在业务请求进来时需要把对应的国家代码存
- 本文实例为大家分享了Android实现百度地图两点画弧线的具体代码,供大家参考,具体内容如下import android.support.a
- 在MailSetting里的配置好邮件服务器,然后MailEntity里配置好要发送的邮件主体,最后使用MailServer里的方法Send
- 本文实例为大家分享了Android使用Gridview单行横向滚动显示的具体代码,供大家参考,具体内容如下要想实现滚动显示,layout布局
- 栈(Stack)和队列是非常类似的一个容器,只是栈是一个后进先出(LIFO)的容器。栈用Push()方法在栈中添加元素,用Pop()方法获取
- 首先我们看看为什么需要对象复制?为什么需要对象复制如上,是我们平时开发中最常见的三层MVC架构模型,编辑操作时Controller层接收到前
- 如果需要处理的数字有许多位,就可以使用BitArray类和BitVector32结构。BitArray类位于System.Collectio
- view plaincopy to clipboardprint?//手动保存图片 &nbs
- 这里用到一个HTML解析辅助类:HtmlAgilityPack,如果没有网上找一个增加到库里,这个插件有很多版本,如果你开发环境是使用VS2
- 一、什么是JSONJSON: JavaScript Object Notation JS对象简谱,是一种类似于XML的语言。相比于XML,它