【转】将扫描QR Codes(二维码)功能加入Android App-程序员宅基地

技术标签: 生活  手机  Android/JAVA  图像处理  android  j2se  matrix  

http://icekirin.com/wordpress/?p=14

二维条码背景介绍
在当今生活中我们经常见到一维条码,二维条码的应用还刚刚起步,随着带摄像头的智能手机普及,二维条码的应用渐渐来到我们的日常生活中。

手机二维码的技术是指以二维码标准为核心,将手机作为载体,而展开的码制编码、译码、识别、被识别相结合的综合性技术。二维码技术的研究始于20世纪80年代末,目前二维码已经是一项非常成熟的技术,并有许多国家开始应用这项技术。全球现有的一维码、二维码多达250种以上,其中常见的有PDF417、QRCode、Code49、Code16K、CodeOne等20余种。在众多的二维码技术标准中,QR(Quickly Response)码与DM(Data Matrix)码应用最为广泛。

 

DM码产生于1989年,包括NASA、USDoD两种标准。DM码主要采用了复杂的纠错码技术,使得该编码具有超强的抗污染能力。目前DM码在韩国市场上属于手机二维码的主流技术。

QR码是由日本Denso公司于1994年研制的一种矩阵二维码符号,该二维码已经成为日本主流的手机二维码技术标准,它的最大特点就是可高效地表示汉字。

日本是最早开始使用二维码的国家。目前市场上已有很成熟的QR手机二维码市场应用,QR条形码在日本得到相当规模的应用,日本的海报、游览手册、传单、折扣券、电子票证,甚至连树上都贴着二维码,成为日本手机用户登录网站以及获得广告商品信息的非常便捷的方式。近几年来,日本二维码手机市场的占有率在逐年上升,从2002年的0.8%上升到了2005年的52.6%,2006年日本二维码手机市场占有率达到70%左右,如图1所示。日本手机二维码的运营模式是开放的,二维码扫描是手机上的一项功能,而不是运营商提供的一种服务。二维码的技术商将解码软件提供给运营商后,按手机的装机量收取版权费,运营商则将软件的解码完全公开,用户可以进行任意编码。

手机上二维条码的应用,分主读业务和被读业务。

主读业务,手机要带有摄像头,还要安装一个二维条码识别软件。手机二维码是二维码的一种,它不但可以印刷在报纸、杂志、广告、图书、包装以及个人名片上,用户还可以通过手机扫描二维码,或输入二维码下面的号码即可实现快速手机上网功能,并随时随地下载图文、音乐、视频、获取优惠券、参与抽奖、了解企业产品信息。同时,还可以方便地用手机识别、存储名片和自动输入短信,获取公共服务(如天气预报),实现电子地图查询定位、手机阅读等多种功能。  当电影院有个你心仪的片子上演的时候用户只要拿起手机照一下广告上的 二维条码,足不出户电子电影票就到你手里了。电子电影票以短信方式把一个二维条码发送到你手机。当你进电影院时候,把这个二维条码的图片调出来在入口处的条码扫描仪上照一下,就可以入场看电影了。

据介绍,条码在手机上的应用目前在日本韩国正在成为时尚。人们通过手机二维码技术实现的移动商务、导航和位置服务、名片识别和输入、快捷付款和影视节目指南等丰富多彩的增值业务已经变成了人们生活中不可缺少的一部分。在东京、便利店、地下铁、户外广告、杂志上面,随处可见小小的方形花纹图案。行人偶尔停留,取出手机随意一拍,仅仅是这一瞬间,他们就完成了信息获取、电子交易以及二维码凭证获取。而后便可开心地奔赴影院、球场、餐厅、机场等场所,快捷地享受他们定购的服务。这就是应用了手机二维码技术。

被读业务,在我国发展得更多.把传统凭证的内容及持有者信息编码成为一个二维码图形,并通过短信、彩信等方式发送至用户的手机上,使用时,通过专用的二维码读取器(诸如DENSO.NEWLAND.SUMLUNG的设备)对着手机上显示的二维码图形进行识读验证即可。

图文并茂的例子

下面的是读取名片上印的二维码的例子。

令人羡慕的Google名片

背后印有二维码

用手机拍下来

自动识别出姓名,邮箱,电话号码

Android上的二维码应用

如果你已经拥有一部G1 ,那么也许已经尝试过应用手机扫描各种商品的条形码功能。在第一次Android应用开发设计大赛中就有一款备受关注的设计CompareEverywhere,可以说它并不是第一个应用此功能的程序,但却是很多人通过它了解到了可以应用扫描条形码来做很多有趣的开发。

另外还有一个ShopSavvy 也值得我们关注,它可以通过扫描条形码来通过统一数据平台来比较不同商场和地区同一商品的价格,特别是针对当前的金融危机,老百姓花钱要更加谨慎,相信类似这样的应用将会得到非常好的推广。

也许现在你也正在考虑如何将这样一种符合当前经济形势的技术整合在自己的软件中,但却又无从下手。那么这里有一个非常简单的办法来解决这个问题,并且让你的软件非常容易的整合这个功能。上边所提到的两款Android APPs都同样调用了一款开源的核心程序ZXing (下载),你也可以尝试通过使用Intent将扫描条形码的功能加入到你的程序中。

ZXing  ("Zebra Crossing")

ZXing (发音为“斑马线” )是一个开源,多格式1D/2D条形码图像处理的Java库。重点是使用手机内置的摄像头拍摄来进行解码条码,且无须经过服务器。 目前已经支持以下编码格式:

  • UPC-A and UPC-E
  • EAN-8 and EAN-13
  • Code 39
  • Code 128
  • QR Code
  • Data Matrix (‘alpha’ quality)
  • PDF 417 (‘alpha’ quality)
  • ITF

这里需要着重提到比较流行的一种编码QR Code ,它较以往条形码所不同的是包含了更多的信息,例如:可以将地理信息、网站链接、联系方式等等资料存储在这样的2维方形编码中,它最大支持有250个字符的信息量。这个标准已经在日本非常流行,但是现在依然面临着让其它国家支持这样一个统一的标准的问题。

这个库是分为几个部分组成:

  1. core :核心图像解码库和测试代码
  2. javase : J2SE的特定客户端代码
  3. android :机器人客户端,要求条码扫描器
  4. androidtest :机器人测试程序
  5. android-integration :支持与我们的条码扫描器程序通过意向
  6. zxingorg : zxing.org/W的源码
  7. zxing.appspot.com :网络条码生成器的源码

赶快在你的程序中试一试这样的功能吧!

不足之处

目前还没研究出来怎么解决中文问题。也许是本身二维码生产时候就乱码了,也许是解析时候的问题。待解决。

其他

QR二维码制作软件

在线:http://qrcode.kaywa.com/

本地:Psytec QR Code Editor (下载)

荷兰网络公司(网址)开发了一种手机条码。虽然这不是新东西了(我国,日本都有用),不过倒是第一次用在社交方面。到他们的网站申请一个账户,提供上自己的Facebook等等账户信息(甚至可以是任何网址),他们会生成一个条码给你,另外用户需要在W-41.com下载手机识别软件,然后就可以拍照这些条码进而分析出这个人的那些账户,然后再打招呼之前对他有个了解。他们的网站还卖衣服(或者说你必须要买衣服),你的条码会印在衣服上及给你,大约300多块。

示例代码

zxing.zip

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maque0312/article/details/6569508

智能推荐

可狱可囚的爬虫系列课程 07:BeautifulSoup4(bs4)库的使用_beautifulsoup4库 获取br-程序员宅基地

文章浏览阅读1.5k次,点赞21次,收藏18次。BeautifulSoup4 属于 BeautifulSoup 系列的第四代版本,BeautifulSoup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库,这个库能够实现树文档的导航、查找,从而帮助我们提取到网页中所需要的数据。。如果忘记了在哪里安装,请回看 Requests 模块第一篇文章。安装好以后,我们围绕数据提取这个话题对 BeautifulSoup4 进行剖析。"""# 问题一:使用标签选择器获取源代码中所有的 p 标签。_beautifulsoup4库 获取br

rpm包及作用_cannot install both libpng-2:1.5.13-8.el7.x86_64 a-程序员宅基地

文章浏览阅读1.9k次。基于Red Hat Enterprise Linux Server release 7.4 (Maipo)最小化安装将会慢慢补齐每个包的作用:1 bash-completion-2.1-6.el7.noarch https://cbs.centos.org/koji/rpminfo?rpmID=4260 2 grubby-8.28-23.el7.x86_64 ..._cannot install both libpng-2:1.5.13-8.el7.x86_64 and libpng-2:1.6.37-1.ky10.

vxworks的RTP学习_vxworks rtp-程序员宅基地

文章浏览阅读2.1k次。这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma..._vxworks rtp

用户层与驱动通信-程序员宅基地

文章浏览阅读185次。以进行加法和减法为例,用户层将要进行的操作码和参数,返回缓冲发给驱动,驱动进行处理并将结果写到返回缓冲中driver.c//_stdcall#include<ntddk.h>#include<ntstrsafe.h>#pragma code_seg("INT")#define SynLinkName L"\\??\\freesec_tx..._pirpstack->majorfunction

Android Framework 分析-程序员宅基地

文章浏览阅读91次。http://raymond1860.spaces.live.com/Blog/cns!BF47B6FD104579C9!797.entry1.目录树/framework/base/api/framework/base/awt/framework/base/build/framework/base/camera关 于camera的HAL接口库。最终生成native共享库l..._android framework cmds 开发

springboot+mysql互联网互联网美食分享平台源码53102-程序员宅基地

文章浏览阅读82次。免费领取项目源码,请关注●点赞收藏并私信博主,谢谢-、互联网美食分享平台采用Java技术,Mysql数据库存储数据,基于Springboot框架开发。系统采用了模块化设计方法,根据用户的需求开发功能模块,方便了程序扩展维护,以便后期的更新。整个开发过程首先对系统进行需求分析,得出系统主要功能模块。接着对系统进行总体设计和详细设计。最后对系统进行了功能测试,并对测试结果进行了分析总结,得出系统的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为以后开发类似系统提供了借鉴和帮助。

随便推点

E - Mafia CodeForces - 348A 【二分】_348a二分-程序员宅基地

文章浏览阅读317次。E - Mafia CodeForces - 348A 【二分】One day n friends gathered together to play “Mafia”. During each round of the game some player must be the supervisor and other n - 1 people take part in the game. Fo..._348a二分

四元数和旋转矩阵_四元数 旋转矩阵-程序员宅基地

文章浏览阅读1.6w次。四元数和旋转矩阵Quaternion(四元数)Quaternion 的定义四元数一般定义如下: q=w+xi+yj+zk其中 w,x,y,z是实数。同时,有: i*i=-1 j*j=-1 k*k=-1四元数也可以表示为: q=[w,v]其中v=(x,y,z)是矢量,w是标量,虽然v是矢量,但不能简_四元数 旋转矩阵

WebComponents.exe未安装的解决办法-程序员宅基地

文章浏览阅读5.8w次,点赞6次,收藏3次。很多人在使用海康威视的开发包的时候,都会遇到下面几个问题在安装WebComponents.exe之后 浏览器在运行的时候提示WebComponents.exe为安装 或者是WebComponents.exe不是最新版本开发包提供的版本如下,浏览器自动安装的版本为3.0.5.34这2个版本都是是可以使用的 ,而且不需要更新那么问题就在浏览器了_webcomponents.exe

集成测试与系统测试_集成测试是系统测试吗-程序员宅基地

文章浏览阅读1.4w次,点赞5次,收藏42次。 集成测试与系统测试_集成测试是系统测试吗

Jenkins中文官网地址_jenkins官网-程序员宅基地

文章浏览阅读792次,点赞9次,收藏8次。Jenkins 是一个开源自动化服务器。Jenkins 用户手册。_jenkins官网

nginx 网页匹配跳转(rewrite、location)_nginx location直接指向某个网页-程序员宅基地

文章浏览阅读1.7k次,点赞29次,收藏23次。location,rewrite基于:域名、客户端ip、旧域名、参数匹配,跳转_nginx location直接指向某个网页

推荐文章

热门文章

相关标签