第一次知道超市用的那种扫描枪居然还可以通过蓝牙连接,直接把扫描结果显示在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文字的颜色跟输入的文字颜色相同。

android 扫码枪编程,android 扫码枪解惑相关推荐

  1. android开发重要控件,Android界面编程——Android基本控件

    Android界面编程 Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户. 作为一个程序员 ...

  2. Android Socket编程android端服务器和客户端的实现

     Android Socket编程android端服务器和客户端的实现       其实和java实现的差不多,或本质是用java实现的,但由于android有自身的独特性,所以还是有一些要注意的点: ...

  3. android高级编程-android高级应用

    android高级应用>>> 第一阶段 程序员基本素质养成 程序员所需要具备的12条职业素质 让学员初步了解和审视自己所应该具备的职业素质.并且我们会在授课中随时训练和贯彻这样的素质 ...

  4. android 蓝牙 编程,Android编程之蓝牙测试实例

    本文实例讲述了Android编程之蓝牙测试.分享给大家供大家参考.具体分析如下: 一.软件平台: win7 + eclipse + sdk 二.设计思路: 配合倒计时定时器实现蓝牙打开,可见,扫描三个 ...

  5. android surface编程,Android编程之SurfaceView实例详解

    本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在U ...

  6. android日历编程,Android日历控件PickTime代码实例

    最近做项目,需要设置用户的生日,所以做这样一个功能. 开始发觉自带的DatePicker 很是不好用. 上代码: android:id="@+id/dpPicker" androi ...

  7. android 字体编程,Android编程之Calligraphy:Android 自定义字体库

    Calligraphy是android 自定义字体库 添加依赖 Download from Maven Central (.jar) OR Java dependencies { compile 'u ...

  8. android 扫码枪编程,Android扫描枪(PDA)开发

    @Override public void onBackPressed() { new AlertDialog.Builder(this).setTitle("确认退出吗?") . ...

  9. android gpu 编程,Android设备上的GPU编程

    1)Programming Smartphone's GPU and programming other GPU (Nvidia GeForce 9 for example) are equal? 不 ...

最新文章

  1. 2-1-XML和约束文档
  2. 我弟弟用管理员身份把我和爸妈的WIFI设置了,现在就他能用网,气不过,有办法让我出口气吗?
  3. 在Unity3D中实现安卓平台的本地通知推送
  4. 百度换肤,表单全选案例
  5. 使用Keras-yolov3来识别滑动验证码
  6. 计算机电子怎么安装,教你怎样自己组装电脑
  7. eslint: globals
  8. 灰度值为负?问题可能出在这里
  9. 有的人呀,他真的是带不动。。。
  10. Android 应用桌面角标显示
  11. pyspark:ML和MLlib
  12. html手抄报怎么制作软件,如何用word制作一个精美的电子板报
  13. eclipse网络代理设置
  14. 第十三课功能键之开根号——C#计算器编程教学
  15. 机器语言-汇编语言-高级语言各自优缺点
  16. 电脑连蓝牙耳机,放音乐是用蓝牙耳机,浏览器不能用蓝牙耳机,用的扬声器,解决方案:
  17. 详解Java中的main方法
  18. Windows Server 2012/2016 在桌面上显示“我的电脑”图标
  19. git合并多个远程commit并提交
  20. 高级商务办公软件应用【8】

热门文章

  1. 澳大利亚计划兴建首个海上风电场
  2. 动态链接函数dlsym()的参数RTLD_NEXT使用注意事项
  3. 微店小程序、微店系统怎么开发,流程步骤_OctShop
  4. 国企数字化转型主要工作
  5. 网上源码买卖靠谱吗?
  6. SVN提交代码时全选文件
  7. 搭建个人静态blog
  8. PostgreSQL的psql中的AutoCommit
  9. 环境变量的作用,为什么要要设置环境变量PATH
  10. linux 拼音输出繁体_shell中如何得到中文的拼音?