博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zxing扫描二维码
阅读量:7233 次
发布时间:2019-06-29

本文共 2384 字,大约阅读时间需要 7 分钟。

hot3.png

1、开源项目地址:

2、jar包下载地址: 可以选择版本号,然后下载。

3、导入demo:  导入android 文件夹即可。

4、网上精简版demo:   

     

效果图:

111256_yFSy_1389206.png

111256_GIto_1389206.png

111257_c0yv_1389206.png

111258_gZ9G_1389206.png

111259_ymys_1389206.png

caution:

  1. 手机横竖屏问题

    位置:CameraConfigurationManager.initFromCameraParameters

    修改代码:if (width < height) {

        camera.setDisplayOrientation(90);//添加的代码
       int temp = width;
       width = height;
       height = temp;
      }

    位置:CameraManager.getFramingRectInPreview

    修改代码: WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE);

      Display display = manager.getDefaultDisplay();
      int width = display.getWidth();
      int height = display.getHeight();
      if (width<height) {
       System.out.println("竖屏");
       rect.left = rect.left * cameraResolution.y / screenResolution.x;
       rect.right = rect.right * cameraResolution.y / screenResolution.x;
       rect.top = rect.top * cameraResolution.x / screenResolution.y;
       rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;
      }
      if (width>height) {
       System.out.println("横屏");
       rect.left = rect.left * cameraResolution.x / screenResolution.x;
       rect.right = rect.right * cameraResolution.x / screenResolution.x;
       rect.top = rect.top * cameraResolution.y / screenResolution.y;
       rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y;
      }

2.扫描结果对话框

   位置:CaptureActivity.handleDecode

  修改代码:if (!TextUtils.isEmpty(result)) {

   AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setMessage(result)
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                     //请求网络,发送数据
                     new AsyncTask<String, Void, String>() {
                    @Override
                     protected String doInBackground(String... params) {
                          AccessToServer accessToServer=new AccessToServer  ("
");
                         return   accessToServer.doPost(new String[]{"content"}, new String[]{result});
                     }
                       protected void onPostExecute(String result) {
                        //System.out.println(result);
                   };
             }.execute();
          //页面跳转打开网页
             Intent mIntent=new Intent(CaptureActivity.this,WebViewActivity.class);
            mIntent.putExtra("url", result);
             startActivity(mIntent);
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                    finish();              //这个地方非常关键,如果不finish()的话,第二次扫描可能要好长时间,或者扫不出来
                    }
                });
        builder.create().show();
         
   /*Intent intent = new Intent();
   intent.putExtra("scan_result", rawResult.getText());
   setResult(RESULT_OK, intent);*/
  } else {
   setResult(RESULT_CANCELED);
  }
  // finish();           //记得要注释掉

3.扫描灵敏度问题

  距离二维码多远能扫描出来?

  多长时间能扫出来?

 

 

转载于:https://my.oschina.net/u/1389206/blog/212709

你可能感兴趣的文章
为什么那么多自学Python的后来都放弃了,原因。
查看>>
rsync同步和备份文件到本地
查看>>
pygame.error: font not initialized的解决及init()到底干了什么
查看>>
ApacheCN 翻译活动进度公告 2019.2.18
查看>>
在VUE中利用MQTT协议实现即时通讯
查看>>
React入门:从零搭建一个React项目
查看>>
golang 之 import 和 package 的使用
查看>>
Python之父重回决策层,社区未来如何发展?
查看>>
J2EE开发笔记(一)—— J2EE开发环境配置
查看>>
算法与数据结构大系列 - NO.1 - 插入排序
查看>>
SWF是什么文件,SWF文件用什么软件可以打开
查看>>
回溯算法讲解--适用于leetcode绝大多数回溯题目
查看>>
vue--为什么data属性必须是一个函数
查看>>
240. Search a 2D Matrix II
查看>>
力扣(LeetCode)155
查看>>
Object.keys()是按什么顺序返回值的?
查看>>
在 JavaScript 中优雅的提取循环内的数据
查看>>
基于Nodejs的前端灰度发布方案_20190228
查看>>
TP5实现支付宝电脑网站支付学习笔记
查看>>
如何绘制最美的鱼骨图?
查看>>