实现扫一扫功能

前段时间 ,完成一个项目,项目很简单,主要就是 实现一个扫一扫功能,此文章,主要针对此项目 对于 扫一扫功能做一个总结;

1.首先 实现扫一扫功能 ,用的是 zxing。

在网上 关于zxing的导入,资料一大堆,但是都比较复杂,所以 ,我就找了 一个简单的 ,

compile 'com.journeyapps:zxing-android-embedded:3.5.0'//zxing 的二维码扫描依赖库
直接 一行代码 搞定 ,里面已经包含了 对权限的申请,同时适配了 7.0 版本 ,大家可以自行参考。

附上 该库的 github地址:

https://github.com/journeyapps/zxing-android-embedded

下面是简单记录一下 ,重要的代码。

2.导入成功之后:

第一步: 点击按钮调用

/**
 * 跳转扫一扫页面
 */
@OnClick(R.id.relative_layout_scan_title)
public void onClickScan() {

    IntentIntegrator integrator = IntentIntegrator.forSupportFragment(TaskReminderFragment.this);
    // 设置要扫描的条码类型,ONE_D_CODE_TYPES:一维码,QR_CODE_TYPES-二维码 不设置 默认为 全部类型
    integrator.setPrompt("将二维码放到框内即可"); //底部的提示文字,设为""可以置空
    integrator.setCameraId(0); //前置或者后置摄像头
    integrator.setBeepEnabled(true); //扫描成功的「哔哔」声,默认开启
    integrator.setBarcodeImageEnabled(true);
    integrator.setTimeout(1000 * 60);//设置超时时间
    integrator.initiateScan();//开始扫描
}
此处是以 在fragment中调用为例子;

第二步:

在扫描成功之后的逻辑处理:

/**
 * 扫一扫 返回的页面
 */
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // 获取解析结果
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if (result != null) {
        if (result.getContents() == null) {
            App.showToast("取消扫描");
        } else {
            Log.d("111", "二维码扫描结果为:" + result.getContents());
            App.getInstance().saveProductId(result.getContents());//保存产品二维码 id
            //扫描成功之后  进行网络请求

            if (StringUtil.isNotEmpty(result.getContents()) && (!(result.getContents() + "").equals("null"))) {
                Intent intent = new Intent(getActivity(), ScanActivity.class);
                intent.putExtra("content", result.getContents());
                intent.putExtra("type",1);//代表的是 从 扫一扫 扫过去的
                startActivity(intent);
            } else {
                App.showToast("扫描产品信息有误");
            }
        }
    } else {
        super.onActivityResult(requestCode, resultCode, data);
    }
}
同时也是写在 fragment页面中

简单的两部操作 就可以实现扫一扫功能了




你可能感兴趣的:(实现扫一扫功能)