android中识别QrCode

  最近有个需求,要使用手机来扫描二维码(使用的的是QrCode),并将其识别出来的数据与后台进行比对并返回结果。手机端当然是先用android来测试,如果有条件再上iphone吧。

  在网上查了下,在android中识别QrCode要用到zxing,据说非常好用。于是把zxing这个项目下载到了本地,现在用的是2.0版本。

  用Eclipse打开项目自带的DEMO,会提示一些错误,只要把core.jar拷到libs下面(当然如果直接把core目录中的源文件添加进项目也是一样一样的),让项目找到就可以了。连上手机一切OK。

  当然,作为一个有理想、有道德、有知识、有纪律的四有新人,只知其然不知其所以然是不对的,所以小马准备让自己好好学习下这个例程,正好作为学习android的一个过程记录下来。

  列了几个需要学习的内容:

  1.android开发的流程,内容

  入门 (http://www.cnblogs.com/over140/archive/2010/09/27/1836567.html

  button的响应(http://blog.csdn.net/hopease/article/details/7293244

  2.照相机的使用

  surfaceview的使用(http://www.cnblogs.com/liuan/archive/2012/01/09/2317377.html

  3.zxing的流程

    简单讲就是用相机识别图像,找到定位点

    拍摄图像,转换成BitMatrix

    再decode成字符串

  4.zxing对中文的识别

  zxing缺省的猜测编码方式函数:guessEncoding没有内置对中文GB2312的支持,也就是说如果在传递参数中没有指定GB2312的话,zxing是猜测不出这是个中文字符串的,具体情况在这里http://www.cnblogs.com/liuan/archive/2012/01/12/2321089.html

  小马的解决方法很黄很暴力,把

  //String characterSet = (String) hints.get(DecodeHintType.CHARACTER_SET); //这句是用来获取传递进来的参数,看看有没有指定编码方式。

  直接改为String characterSet = "GB2312";

  由于我的项目中不存在英文与中文以外的字符,这样改是没有问题的,如果你的项目中需要识别其他字符集,那就需要修改guessEncoding了。

  5.hessian的使用

  (http://www.cnblogs.com/over140/archive/2010/07/30/1788563.html

posted on 2012-04-18 11:14  马来亚  阅读(839)  评论(0编辑  收藏  举报

导航