android使用zxing二维码扫一扫功能

<1>使用zxing二维码实现扫一扫功能,需要添加zxing.jar包到libs以及将下面的相关的文件导入到项目中
这里写图片描述
这里写图片描述
<2>在清单文件中添加所要用到的权限,并注册activity

 <!-- 二维码扫描用到的权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.hardware.camera" />
    <uses-permission android:name="android.hardware.camera.autofocus" />


  <activity android:name=".activity.CaptureActivity" />

<3>核心代码:

                    //跳转到扫描界面,并返回值到所在的activity
                    Intent intent = new Intent(getActivity(), CaptureActivity.class);
                    startActivityForResult(intent, 100);

在当前的fragment中重写onActivityResult()方法

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 100 && resultCode == RESULT_OK) {
            Bundle bundle = data.getExtras();
            //如果bundle不为空
            if (bundle != null) {
                //获取扫描到的值
                String result = bundle.getString("result");
                //判断是否是网页地址,并且判断是否是与微信有关的网址
                if (Patterns.WEB_URL.matcher(result).matches() && !result.startsWith("http://weixin.qq.com/")) {
                    //通过默认的浏览器打开网页
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    Uri uri = Uri.parse(result);
                    intent.setData(uri);
                    startActivity(intent);
                } else if (result.startsWith("http://weixin.qq.com/")) {
                    //如果是与微信有关的网址,则跳转到ScanResultActivity
                    Intent intent = new Intent(getActivity(), ScanResultActivity.class);
                    intent.putExtra("result", "以下内容非本应用提供,请谨慎使用,与微信有关");
                    startActivity(intent);
                } else {
                    //否则跳转到ScanResultActivity中
                    Intent intent = new Intent(getActivity(), ScanResultActivity.class);
                    intent.putExtra("result", "无法展示");
                    startActivity(intent);
                }
            } else {
                //bundle为空时,表示无法识别,依然跳转到ScanResultActivity中
                Intent intent = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值