Android如何实现USB扫码枪获取扫描内容
发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,本篇内容介绍了"Android如何实现USB扫码枪获取扫描内容"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年02月11日Android如何实现USB扫码枪获取扫描内容
本篇内容介绍了"Android如何实现USB扫码枪获取扫描内容"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
最近做了关于在Android设备上外接扫码的项目,在此记录一下关于Android USB扫码枪获取内容的问题
首先我这边使用是USB HID的扫码枪,即插即用,只需要在界面上有一个带有焦点的EditText ,就可以获取扫码枪扫描的内容。
是不是感觉很简单,但是今天我这里是讲的是在没有EditText 的情况下获取扫码枪扫描的内容。
USB HID扫码枪会将扫描出来的内容转化为键盘事件,对应的就是Android中的KeyEvent事件,所以我们只需要在我们的activity中
重写onKeyDown方法
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { checkLetterStatus(event); keyCodeToNum(keyCode); if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { Log.e("键盘事件", buffer.toString()); buffer.delete(0, buffer.length()); return true; } return false;}
上面我们说了扫码枪是响应我们的键盘事件,所以当扫码枪每扫描到一个字符的时候,就相当于按下了我们键盘上的对应按键,也就是keyCode,因此我们只需要处理这个keyCode就行了。
下面我把checkLetterStatus()检查是否大小写的方法跟keyCodeToNum()根据对应的keycode转换对应的数字跟字母
//检查shift键 private void checkLetterStatus(KeyEvent event) { int keyCode = event.getKeyCode(); if (keyCode == KeyEvent.KEYCODE_SHIFT_RIGHT || keyCode == KeyEvent.KEYCODE_SHIFT_LEFT) { if (event.getAction() == KeyEvent.ACTION_DOWN) { //按着shift键,表示大写 mCaps = true; } else { //松开shift键,表示小写 mCaps = false; } } } //根据keycode得到对应的字母和数字 private void keyCodeToNum(int keycode) { if (keycode >= KeyEvent.KEYCODE_A && keycode <= KeyEvent.KEYCODE_Z) { if (mCaps) { buffer.append(map.get(keycode).toUpperCase()); } else { buffer.append(map.get(keycode)); } } else if ((keycode >= KeyEvent.KEYCODE_0 && keycode <= KeyEvent.KEYCODE_9)) { buffer.append(keycode - KeyEvent.KEYCODE_0); } else { //暂不处理特殊符号 } }
上面的方法里面有个map,是用来存储字母的
Mapmap = new HashMap<>(); map.put(29, "a"); map.put(30, "b"); map.put(31, "c"); map.put(32, "d"); map.put(33, "e"); map.put(34, "f"); map.put(35, "g"); map.put(36, "h"); map.put(37, "i"); map.put(38, "g"); map.put(39, "k"); map.put(40, "l"); map.put(41, "m"); map.put(42, "n"); map.put(43, "0"); map.put(44, "p"); map.put(45, "q"); map.put(46, "r"); map.put(47, "s"); map.put(48, "t"); map.put(49, "u"); map.put(50, "v"); map.put(51, "w"); map.put(52, "x"); map.put(53, "y"); map.put(54, "z");
最后用一个StringBuffer 来接收处理过的数据。大概就这样吧!
"Android如何实现USB扫码枪获取扫描内容"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
内容
事件
键盘
字母
方法
处理
情况
数字
更多
知识
检查
实用
特殊
学有所成
接下来
上外
也就是
困境
大写
大小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
微信公众号实现查询数据库
阿里用的是什么数据库
计算机网络技术工作日记
通过打游戏开始聊天的数据库
学校 单位网络安全管理制度
网络安全方案需要准备什么
网络安全教育读本读后感
网络安全违规自媒体
阳新互联网络科技
塔式服务器哪个好用
广东大数据软件开发哪家可靠
河北有哪些软件开发专业
傻瓜式软件开发
数据库管理系统字母缩写
企业软件开发团队
手机软件开发课程设计
sql2000压缩数据库
怎么验证配置的dhcp服务器
零基础学电脑软件开发 编程
数据库中的信息服务如何勾选
英伟达t4卡适配哪些服务器
设备管理服务器是什么
邮件的服务器怎么填
软件开发工程师有等级吗
网络安全及清朗网络空间的意义
戴尔服务器售后服务
深圳软件开发驻场服务平台
未来5年网络安全产业
ec服务器pvp材质哪个好
软件开发后端怎么发展