资讯专栏INFORMATION COLUMN

基于zxing-lib三步实现Android二维码应用

sewerganger / 981人阅读

摘要:只需要基于开源项目,便可轻松创建独立二维码,也可将二维码功能集成进内。但请不要局限于示例中的使用方式,比如在二维码扫码成功后,并非只能通过一个才能取到扫码的结果。

只需要基于开源项目zxing-lib,便可轻松创建独立二维码App,也可将二维码功能集成进App内。本文也是zxing-lib的使用文档。同时抛砖引玉,欢迎大家一起共建zxing-lib。

项目地址:https://github.com/wangym/zxing-client-android
遵循协议:Apache License Version 2.0
简介:zxing-lib是一款开源二维码扫码库,基于ZXing进行剪裁和二次开发,支持更多的个性扩展功能,全库仅52KB,以Android library project输出,能被快速使用和集成。

(以下步骤基于已有Android开发经验为前提)

1、环境准备:
检出zxing-lib项目并导入IDE

git clone git@github.com:wangym/zxing-client-android.git

2、调用扫码:
调用zxing-lib库的扫码界面

public class MainActivity extends Activity {

/**
 *
 */
private static final int REQUEST_CODE = 200;

@Override
protected void onCreate(Bundle savedInstanceState) {

    //......
    initActivity();
}

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

    if (null != data && requestCode == REQUEST_CODE) {
        switch (resultCode) {
            case Activity.RESULT_OK:
                data.setClass(this, CaptureResultActivity.class);
                startActivity(data);
                break;
            default:
                break;
        }
    }
}

private void initActivity() {

    //......
    Button btnScanUtf8 = (Button) findViewById(R.id.scan_utf_8);
    btnScanUtf8.setOnClickListener(new Button.OnClickListener() {
        @Override
        public void onClick(View view) {
            callCapture("UTF-8");
        }
    });
}

private void callCapture(String characterSet) {

    Intent intent = new Intent();
    intent.setAction(Intents.Scan.ACTION);
    // intent.putExtra(Intents.Scan.MODE, Intents.Scan.QR_CODE_MODE);
    intent.putExtra(Intents.Scan.CHARACTER_SET, characterSet);
    intent.putExtra(Intents.Scan.WIDTH, 600);
    intent.putExtra(Intents.Scan.HEIGHT, 400);
    // intent.putExtra(Intents.Scan.PROMPT_MESSAGE, "type your prompt message");
    intent.setClass(this, CaptureActivity.class);
    startActivityForResult(intent, REQUEST_CODE);
}}

调用CaptureActivity即可呼出扫码界面,支持设定个性参数,当扫码成功后返回到CaptureResultActivity

3、获取结果:
获取二维码扫码之后的结果

public class CaptureResultActivity extends Activity {

/**
 *
 */
private TextView tvResult;
private TextView tvResultFormat;
private TextView tvUri;

@Override
protected void onCreate(Bundle savedInstanceState) {

    //......
    initActivity();
    initData();
}

private void initActivity() {

    tvResult = (TextView) findViewById(R.id.tv_result);
    tvResultFormat = (TextView) findViewById(R.id.tv_result_format);
    tvUri = (TextView) findViewById(R.id.tv_uri);
}

private void initData() {

    Intent intent = getIntent();
    if (null != intent) {
        tvResult.setText(intent.getStringExtra(Intents.Scan.RESULT));
        tvResultFormat.setText(intent.getStringExtra(Intents.Scan.RESULT_FORMAT));
        tvUri.setText(intent.toUri(intent.getFlags()));
    }
}}

二维码扫码成功后调出CaptureResultActivity,上例将结果直接显示,本质上是通过Intent获取扫码结果的

完整示例见zxing-lib-example。但请不要局限于示例中的使用方式,比如在二维码扫码成功后,并非只能通过一个Activity才能取到扫码的结果。请结合具体场景灵活运用。

如有任何疑问或建议,请随时联系我 :)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12132.html

相关文章

  • 更新日志 - fir.im 回归,上线 Android Studio 插件

    摘要:上周经历了一场前所未有的挑战,因为自查应用网站暂停,在事情发生天内我们完成了自查,正式回归。以上为本周的更新日志,和以前一样,要表扬或者吐槽,随时联系我们 上周 fir.im 经历了一场前所未有的挑战,因为自查应用网站暂停,在事情发生4天内我们完成了自查,fir.im 正式回归。煎熬的 98 个小时,感谢开发者与用户对我们的信任和支持。 showImg(https://segmentf...

    zhaochunqi 评论0 收藏0
  • 记数独X--Android openCV识别数独并自动求解填充APP开发过程

    摘要:可以针对笔者常用的数独本文的实现都基于该,实现数独的识别求解并把答案自动填入。专家级别的平均秒完成求解包括图像数字提取,识别过程,完成全部操作。步骤四数独求解,生成答案,并生成需要填充的数字序列。 1 序   数独是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3...

    kelvinlee 评论0 收藏0
  • 记数独X--Android openCV识别数独并自动求解填充APP开发过程

    摘要:可以针对笔者常用的数独本文的实现都基于该,实现数独的识别求解并把答案自动填入。专家级别的平均秒完成求解包括图像数字提取,识别过程,完成全部操作。步骤四数独求解,生成答案,并生成需要填充的数字序列。 1 序   数独是源自18世纪瑞士的一种数学游戏。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3...

    yvonne 评论0 收藏0
  • android查漏 - 收藏集 - 掘金

    摘要:终于明白了的运行机制掘金前言是一个提供给开发者方便进行异步消息处理的类。当失效后重新请求登录接口,当登录成静默卸载解决方案的探索掘金一般情况下,系统安装会出现一个安装界面,用户可以点击确定或者取消来进行的安装。 给所有开发者的React Native详细入门指南(第一阶段) - 掘金版权声明:本文为Marno原创,转载必须在明确位置注明出处!转载地址:https://gold.xitu...

    DTeam 评论0 收藏0
  • Android view - 收藏集 - 掘金

    摘要:掘金一个可实现长按扫描上的二维码的工具库。说到刷新加载,我们第一个想到啥,对了从头开始学四类添加和多种的支持掘金来张图前言敲酷炫的切换效果和弹性指示器。掘金效果图使用方法依赖注意使用时需要在父布局中加入仿讨论组头像掘金仿讨论组头像基 仿美团详情滑动界面,并兼容 NestedScroll 嵌套 - Android - 掘金不论什么APP应该都会有个app产品的详情界面, 详情界面往往也比...

    IntMain 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<