android 扫码枪编程,android 扫码枪解惑

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

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

扫描枪蓝牙连接或者断开的时候,会导致当前所在的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文字的颜色跟输入的文字颜色相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值