android 扫码枪解惑

作者: _deadline | 来源:发表于2016-10-26 13:16 被阅读1485次

第一次知道超市用的那种扫描枪居然还可以通过蓝牙连接,直接把扫描结果显示在editText.

既然需求来了那就做把,刚开始一脸懵逼,google一下吧!看了几篇相关的文章大概了解有两种连接蓝牙的方式,一种是自己实现蓝牙的扫描,发现设备,连接设备,但是我觉得只是连一下扫描枪,用不到这么麻烦,因为这还涉及到版本支持,蓝牙4.3以及以上才可以用。还有一种方式,就是自己手动匹配连接扫描枪。这里我使用的是第二种实现方式,因此,这篇文章主要说说,在这种方式下遇到的坑。

  1. 扫描枪蓝牙连接或者断开的时候,会导致当前所在的activity onDestroy -> onCreate
    即activity被销毁又重建,类似屏幕旋转导致activity重建
    解决办法: 在xml中配置:android:configChanges="orientation|keyboard|keyboardHidden"

然后在activity中重写onConfigurationChanged()方法,不做任何处理,就是重写就行了

@Override
public void onConfigurationChanged(Configuration newConfig) {      
     super.onConfigurationChanged(newConfig);
}

2.扫描枪一般都可以设置为扫描完自带回车。这就遇到问题了,本次扫描完,获取数据,然后edittext的文字不能清空,要一直显示着,直到下一次扫描,这就蛋疼了。

你也许想到了TextWatcher beforeChanged我也是这么想的,但是很纠结,因为有时候会有数据的第一位被清除的尴尬情况:

比如:扫描出来的数据应该是 1234567890;
但用了如上方法有时候文本框会只显示 234567890.
这样肯定不行。 后来想到通过hint做些文章。

扫描完成,获取扫描的数据后,就把文本框清空,然后把数据设置成hint, 然后hint文字的颜色跟输入的文字颜色相同。

相关文章

  • android 扫码枪解惑

    第一次知道超市用的那种扫描枪居然还可以通过蓝牙连接,直接把扫描结果显示在editText. 既然需求来了那就做把,...

  • Android使用AccessibilityService实现U

    android单屏机,通过扫码枪扫描二维码的场景非常多,扫码枪的种类也有蓝牙、USB、串口等等 目前USB的扫码枪...

  • android使用扫码枪被系统键盘拦截的问题 2019-08-1

    android接入扫码枪,主动扫码却弹出键盘拦截了输入,导致前端onkeypress事件无法接收到输入字符。 US...

  • js获取扫码枪输入

    场景:扫码枪扫码,获取信息,js代码如何获取扫描信息呢? 原理:扫码枪输入会触发键盘输入事件。扫码枪输入的时间间隔...

  • 扫码枪【1】: vue中扫码枪的运用

    扫码枪 一、扫码枪是干什么的? 顾名思义,它是来扫二维码的,如下所示,扫码枪连接电脑,把二维码的信息读出条码自动在...

  • Android 扫码枪监听封装

    一、参考 1、常用keycode 一、简述 1、设备:扫码枪其实相当于一个物理输入设备,如果软键盘打开的话能明显感...

  • Android外接USB扫码枪

    前言 公司的设备以前接入的都是串口的扫码头,优点是直接通过串口读取流里面的数据就OK了,缺点是你需要知道每一款扫码...

  • 获取扫码枪扫码的内容

    获取扫码枪扫码的内容:String barcode ="";@Overridepublic boolean dis...

  • 超市只需要一个扫码枪

    经营宝扫码枪 超市只需要一个扫码枪就可以完成识别商品、支付、管理商品,不需要台式机和可视化的系统界面。一扫码枪即可...

  • Android 项目中的小需求

    1.硬件扫描二维码登录 参考Android 无 EditText 情况下接受扫码枪扫描数据 需求:硬件设备有二维码...

网友评论

  • 爱码士平头哥:感谢小编的经验啊,我搞了一天,不知道为什么扫描枪接入是会重新调用oncreate,看了这个文章恍然大悟。。
  • _deadline:我是用在fragment里的,在Activity里只做了防止重启的部分
    6c2f07d1f89f:有什么办法能够区分 是蓝牙输入设备的输入 还是自己手动的输入呢,比如登录页面要输入账户 和密码的,如何屏蔽扫码枪的输入,还有我在任何没有EditText焦点的页面扫码 都会直接触发toolbar上的OnNavigationOnClick事件,有什么建议吗大侠
    _deadline: @6c2f07d1f89f 没有啊,没有什么keyEvent, 就在OnEditActionListener里获取输入框内容,完了,也没有传给activity就是在fragment里处理的
    6c2f07d1f89f:@_deadline 那是把KeyEvent事件传给fragment 还是 activity里读数据 传给fragment?
  • 6c2f07d1f89f:我截取输入数据后 触发了toobar上的导航键的 点击效果,虽然没有触发点击后的功能,但是点击效果 会固定在那边,博主有遇到吗
  • 6c2f07d1f89f:连接 跟断开的时候 可以用这种方式屏蔽事件,但是我发现,连接上后,在不需要接受输入数据的界面 扫码的时候,会导致页面直接关闭,难道要在每个activity 屏蔽一次 不需要的输入事件吗,如何屏蔽呢
    6c2f07d1f89f:@_deadline 我主要 接收数据 的页面都是fragment,然后我把事件 封装到baseactivity和basefragment中去了,感觉还是封装地问题,把KeyEvent传给fragment 处理 有好多问题,楼主都是用activity的吗
    _deadline: @6c2f07d1f89f 这种情况我没遇到哎!😓

本文标题:android 扫码枪解惑

本文链接:https://www.haomeiwen.com/subject/blrduttx.html