中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 集成应用 > 基础应用 > 数字图书馆
移动终端促图书馆传统业务创新
http://www.edu.cn   2012-11-18 中国教育网络 作者:李靖

字体选择:【大】 【中】 【小】

移动获取条码数据的方式

  采用手机自带的摄像头来识别条码的速度和正确率均不能达到长时间、大批量的读取要求,并且受制于手机硬件和环境的影响。为了快速、准确地获取条码数据,我们采用了蓝牙条码扫描器。

  Android蓝牙连接模式

  标准蓝牙软件协议结构见图1。Android中操作蓝牙主要是下面四个类:

图1 标准蓝牙软件协议结构

  1. BluetoothAdapter 蓝牙适配器;

  2. BluetoothDevice这个类描述了一个蓝牙设备;

  3. BluetoothServerSocke t 相似于S o c k e t;

  4 . Bl u e t oo t h S o c k e t:这个类与BluetoothServerSocket相对,是客户端。Service和Boradcast提供条码数据

  参考SDK文档和Android的蓝牙代码示例,完成手机和蓝牙条码的连接。要注意的是在读取中如何正确截断读取的条码,并通过Sevice后台运行,通过Broadcast广播获得的条码和出错信息,实例线程代码如下:

  public void run() {

  byte[] buffer = new byte[1];

  byte[] sendbuf=new byte[20];

  int bytes=0;

  while (true) {

  try {

  int i=0;

  while(bytes!=-1) {

  bytes = mmInStream.read(buffer);

  sendbuf[i]=buffer[0];

  i++;

  if(buffer[0]==0x0D) {

  String temp=new String(sendbuf,0,i);

  if(temp!=null) {

  Intent mIntent=new Intent(“test”);

  mIntent.putExtra(“barcode”, temp);

  sendBroadcast(mIntent);

  }

  i=0; } }

  } catch (IOException e) {

  Intent mIntent=new Intent(“test”);

  mIntent.putExtra(“barcode”, temp);

  sendBroadcast(mIntent);

  break;

  }

  }

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com