二维码扫描

来源:互联网 发布:移动宽带网络连接不上 编辑:程序博客网 时间:2024/05/17 08:06
   private static final int REQUEST_CODE = 1001;

    private static final int REQUEST_IMAGE = 1002;


 public void defaultScan(View view) {
        //调用的是zxing自带的扫描页面
        Intent intent = new Intent(getApplication(), CaptureActivity.class);
        startActivityForResult(intent, REQUEST_CODE);
    }


    /**
     * 自己定制扫描界面
     * @param view
     */
    public void dingZhiScan(View view) {
        Intent intent = new Intent(getApplication(), CustomActivity.class);
        startActivityForResult(intent, REQUEST_CODE);


    }


    /**
     * 图片的解析
     * @param view
     */
    public void picScan(View view) {


        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_PICK);
        intent.setType("image/*");
        startActivityForResult(intent, REQUEST_IMAGE);
    }


    /**
     * 生成二维码
     * @param view
     */
    public void shengCheng(View view) {
        Intent intent = new Intent(this,ShengChengActivity.class);
        startActivity(intent);
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);


        if (requestCode == REQUEST_CODE) {
            //处理扫描结果(在界面上显示)
            if (null != data) {
                //拿到传递回来的数据
                Bundle bundle = data.getExtras();
                if (bundle == null) {
                    return;
                }


                if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
                    //解析得到的结果
                    String result = bundle.getString(CodeUtils.RESULT_STRING);
                    Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show();
                } else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) {
                    Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
                }
            }
        }else if (requestCode == REQUEST_IMAGE){
            //取回选中的那种图片uri路径
            Uri uri = data.getData();


            try {
                //解析图片的方法...ImageUtil.getImageAbsolutePath(this, uri)通过uri路径得到图片在手机中的绝对路径
                CodeUtils.analyzeBitmap(ImageUtil.getImageAbsolutePath(this, uri), new CodeUtils.AnalyzeCallback() {
                    //Bitmap mBitmap 解析的那张图片, String result解析的结果
                    @Override
                    public void onAnalyzeSuccess(Bitmap mBitmap, String result) {
                        Toast.makeText(MainActivity.this, "解析结果:" + result, Toast.LENGTH_LONG).show();
                    }


                    @Override
                    public void onAnalyzeFailed() {
                        Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }


    }

原创粉丝点击