android实现扫码枪功能
更新时间:2021年09月29日 08:28:21 作者:cuncaojin
这篇文章主要为大家详细介绍了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 使用Vitamio打造自己的万能播放器(10)—— 本地播放 (缩略图、视频信息、视频扫描服务)
本文主要介绍Android 使用Vitamio开发播放器,这里主要讲解本地播放 (缩略图、视频信息、视频扫描服务)等功能,有需要的小伙伴可以参考下2016-07-07
Android中Handler、Thread、HandlerThread三者的区别
本文主要介绍了Android中Handler、Thread、HandlerThread三者的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-10-10
解决Could not find com.android.tools.build:gradle:3.0.0
这篇文章主要介绍了在Android Studio升级时碰到Could not find com.android.tools.build:gradle:3.0.0问题的解决方法,需要的朋友跟随小编一起看看吧2021-08-08


最新评论