背景:

Android生成条形码与二维码 该文简述了如何生成条形码与二维码,本文就来扫描一下条形码与二维码的内容

准备:

implementation "com.google.zxing:core:3.3.1"

implementation "com.journeyapps:zxing-android-embedded:3.5.0"

核心代码:

ScanActivity.java
package com.wangpengpro.h5test;import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.widget.Toast;import com.google.zxing.BarcodeFormat;
import com.google.zxing.ResultPoint;
import com.google.zxing.client.android.BeepManager;
import com.journeyapps.barcodescanner.BarcodeCallback;
import com.journeyapps.barcodescanner.BarcodeResult;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
import com.journeyapps.barcodescanner.DefaultDecoderFactory;import java.util.Arrays;
import java.util.List;public class ScanActivity extends AppCompatActivity {private DecoratedBarcodeView mScanView;private BeepManager mBeepManager;private DefaultDecoderFactory mDefaultDecoderFactory;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_scan);mScanView = findViewById(R.id.scan_view);requsetPermission();mBeepManager = new BeepManager(this);mDefaultDecoderFactory = new DefaultDecoderFactory(Arrays.asList(BarcodeFormat.QR_CODE,BarcodeFormat.CODE_128), null, null, false);mScanView.getBarcodeView().setDecoderFactory(mDefaultDecoderFactory);startScan();}private void startScan() {mScanView.decodeSingle(new BarcodeCallback() {@Overridepublic void barcodeResult(BarcodeResult result) {String res = result.getText();if (null != res) {doScanResult(res);}mScanView.getBarcodeView().stopDecoding();mScanView.postDelayed(new Runnable() {@Overridepublic void run() {startScan();}}, 1500L);}@Overridepublic void possibleResultPoints(List<ResultPoint> resultPoints) {}});}private void doScanResult(String res) {mBeepManager.playBeepSound();Toast.makeText(ScanActivity.this, res, Toast.LENGTH_SHORT).show();}private void requsetPermission() {if (Build.VERSION.SDK_INT > 22) {if (ContextCompat.checkSelfPermission(ScanActivity.this, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {//先判断有没有权限 ,没有就在这里进行权限的申请ActivityCompat.requestPermissions(ScanActivity.this,new String[]{android.Manifest.permission.CAMERA}, 1);} else {}} else {}}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,@NonNull int[] grantResults) {switch (requestCode) {case 1:if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {//这里已经获取到了摄像头的权限,想干嘛干嘛了可以} else {//这里是拒绝给APP摄像头权限,给个提示什么的说明一下都可以。Toast.makeText(ScanActivity.this, "请手动打开相机权限", Toast.LENGTH_SHORT).show();}break;default:break;}}@Overrideprotected void onResume() {super.onResume();mScanView.resume();}@Overrideprotected void onPause() {super.onPause();mScanView.pause();}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {return mScanView.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event);}
}
activity_scan.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".ScanActivity"><TextViewandroid:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:gravity="center"android:text="扫描"android:textSize="20sp" /><com.journeyapps.barcodescanner.DecoratedBarcodeViewandroid:id="@+id/scan_view"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>

别忘记申请相机权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

Android扫描条形码与二维码相关推荐

  1. 【Android】扫描条形码和二维码

    [Android]扫描条形码和二维码 原文链接:https://blog.csdn.net/xu_weijie/article/details/80763848 步骤一: 在gradle集成Zxing ...

  2. Opencv最强案例——使用摄像头、OpenCV和Python扫描条形码和二维码。

    Dynamsoft是唯一一家为Windows.Linux.macOS和Raspberry Pi OS提供企业级Python条形码和二维码SDK的公司.SDK允许开发人员快速构建健壮的命令行.web和桌 ...

  3. 使用ZXing扫描条形码和二维码

    主要是介绍使用ZXing库进行条形码和二维码的扫描 本帖里面使用的库是别人精简以后的 在代码注释里面作者 - Ryan.Tang 这里主要是介绍一下关于扫描界面 下面是关于属性的介绍 ScanView ...

  4. 【MAUI】条形码,二维码扫描功能

    前言 本系列文章面向移动开发小白,从零开始进行平台相关功能开发,演示如何参考平台的官方文档使用MAUI技术来开发相应功能. 介绍 移动端的扫描条形码.二维码的功能已经随处可见,已经很难找到一个不支持扫 ...

  5. Android开发_ZXing库二维码应用

    Android二维码扫描应用 ZXing库精简版的下载:http://download.csdn.net/detail/a874508605/8546185 布局文件的编写 <LinearLay ...

  6. Android基于Google Zxing实现二维码/条形码扫描、生成二维码/条形码

     二维码/条形码生成器 二维码/条形码扫描器 一.二维码与条形码工作原理 目前的很多应用上都有扫码功能,当时微信推出二维码扫码功能时,觉得imagine,通过一张简单的图片就能扫描添加还有,还有分 ...

  7. android USB摄像头做条形码及二维码扫描(1)

    摘要: 1.前言 2.底层配置 3.JNI实现 4.总结 5.BUG及优化记录 android USB摄像头做条形码及二维码扫描(2) 1. 前言 公司做的产品基于android开发板搭建的控制系统, ...

  8. Android zxing,轻松实现二维码扫描、生成

    Android  zxing,轻松实现二维码扫描.生成 一.二维码与条形码工作原理 目前的很多应用上都有扫码功能,当时微信推出二维码扫码功能时,觉得imagine,通过一张简单的图片就能扫描添加还有, ...

  9. 使用ZXing扫描多个二维码,条形码

    通常情况下,我们在扫描二维码的时候是一个一个去扫的,那么能不能一次扫描多个二维码,一下解析所有结果呢?答案是有的,其实ZXing是给我们提供方法了.但是可惜的是,扫描条形码的时候,ZXing并没有给我 ...

最新文章

  1. (转)mq经验总结-转
  2. python教程:读取.dcm文件,并转化为.jpg格式
  3. UIScrollView事件拦截
  4. pdf在线翻译_如何将英文的PDF文档翻译成中文简体?
  5. 光声光谱技术和激光、红外技术的优劣势对比
  6. springboot session超时设置_Spring Boot+Spring Security:获取用户信息和session并发控制...
  7. 富士施乐 DocuCentre S2011 打印机驱动安装方法
  8. 大数据时代下的个人知识管理
  9. zkw线段树(详解)
  10. java web 速成_渐进式Web应用程序:速成课程
  11. 【过程4】——时间过得很快你的变化也很大
  12. 微信小程序的详细登录(上)
  13. 你知道创业公司股权分配的法律思维吗?
  14. 电影——《小萝莉的猴神大叔》
  15. 以太坊白皮书(中英对照版)
  16. 【Unity脚本】鼠标常用点击事件
  17. 7-238 整数转换为字符串7-242 母牛问题7-243 快速幂
  18. css信号图标,css3实现wifi信号形状
  19. Verilog实现25分频电路代码
  20. 羲云社区团购微信小程序 活动详细页 (界面及功能设计)

热门文章

  1. 基于stm32的智能家居项目
  2. 【tensorflow】Input to reshape is a tensor with xxx values, but the requested shape requires a multipl
  3. windows服务器上无法运行bat文件,Windows 2008任务计划执行bat脚本失败返回0x1的解决方法...
  4. 如何让一个电机转起来
  5. java 线图_在Java中绘制一个简单的线图
  6. PYQT5水平布局后垂直方向控件间距的调整方法
  7. 用神经网络来识别人物图像性别
  8. 华为研发投入全球第二!力压三星、苹果
  9. 免费获取歌词API 可下载歌词
  10. 如何选择适合你的兴趣爱好(十九),养狗