# ScanCratQRBar
**Repository Path**: yscode22/ScanCratQRBar
## Basic Information
- **Project Name**: ScanCratQRBar
- **Description**: Android二维码扫描和创建
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-05-12
- **Last Updated**: 2022-05-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Android 最简单的二维码和条形码扫描生成工具
====
本项目是一个AndroidStudio项目
---
主要功能:
---
>生成条形码
>>条形码的内容自定义
>扫描条形码
>生成二维码
>>二维码内容自定义
>扫描条形码
>扫描形式:
>>手动扫描
>>机器自动扫码
=================================================================
使用方法:快速进入
========

===
步奏1:
---
AndroidStudio导入项目库:
```java
compile 'com.hongyelinggu:scancode:1.0.0'
```
步骤2:
---
调用自己项目用到功能,现在把项目包含的功能做以示范
注意:
我们要用到的无论是生成二维码还是扫描二维码都是一个Activity,所以我们要做的就是传入参数启动Activity
现在我们了解一下方法:实例
```android
intent = new Intent(this, CreateCodeActivity.class);
intent.putExtra(Constant.REQUEST_SCAN_MODE, Constant.REQUEST_SCAN_MODE_ALL_MODE);
intent.putExtra(Constant.CREAL_CODE_KEY, "1234567890CSDCECECECSC");
startActivity(intent);
```
该方法是一个同时生成条形码和二维码的方法,现在以此为例,做详细说明
该方法中有两个重要参数:
> ● Constant.REQUEST_SCAN_MODE 扫描和生成的模板类型
> ● Constant.Constant.CREAL_CODE_KEY 生成图形的内容
参数说明:
---
引入包名 com.hylg.scancode.utils
---
类名:Constant
---
类参数说明:
```库
/**
* 生成二维码/条码 内容
*/
public static final String CREAL_CODE_KEY = "CreateQRKey";
/**
* 扫描方式 KEY
* 普通类型,扫完即关闭 REQUEST_SCAN_TYPE_COMMON
* 手动连续扫描,扫完不关闭界面 REQUEST_SCAN_TYPE_REGIST
* 自动连续扫码,扫完不关闭界面 REQUEST_SCAN_TYPE_REGIST
*/
public static final String REQUEST_SCAN_TYPE = "ScanType";
/**
* 普通类型,扫完即关闭
*/
public static final int REQUEST_SCAN_TYPE_COMMON = 0X0;
/**
* 手动连续扫描,扫完不关闭界面
* 其他类可以从REQUEST_SCAN_MODE_ALL_DATA获取扫描到的数据
*/
public static final int REQUEST_SCAN_TYPE_REGIST = 0X1;
/**
* 自动连续扫码,扫完不关闭界面
* 其他类可以从REQUEST_SCAN_MODE_ALL_DATA获取扫描到的数据
*/
public static final int REQUEST_SCAN_TYPE_REGIST_AUTO = 0X2;
/**
* 扫描/生成类型 KEY
* 条形码或者二维码:REQUEST_SCAN_MODE_ALL_MODE
* 条形码: REQUEST_SCAN_MODE_BARCODE_MODE
* 二维码:REQUEST_SCAN_MODE_QRCODE_MODE
*/
public static final String REQUEST_SCAN_MODE = "ScanCreatMode";
/**
* 条形码: REQUEST_SCAN_MODE_BARCODE_MODE
*/
public static final int REQUEST_SCAN_MODE_BARCODE_MODE = 0X100;
/**
* 二维码:REQUEST_SCAN_MODE_ALL_MODE
*/
public static final int REQUEST_SCAN_MODE_QRCODE_MODE = 0X200;
/**
* 条形码/二维码:REQUEST_SCAN_MODE_ALL_MODE
*/
public static final int REQUEST_SCAN_MODE_ALL_MODE = 0X300;
/**
* 扫码结果码code
*/
public static final int REQUEST_SCAN_MODE_CODE = 0X118;
/**
* 持续扫描到的数据
*/
public static String REQUEST_SCAN_MODE_ALL_DATA = null;
```
两个重要的activity
====
生成图形Activity: CreateCodeActivity
---
接收参数:
> 1.生成图像的类型 Constant.REQUEST_SCAN_MODE
>> 图形类型详情查看Constant类
> 2.生成图形的内容 Constant.CREAL_CODE_KEY
>> 图形的内容
都是放在intent中传递
扫描图形Activity: CommonScanActivity
---
接收参数:
>1.扫描图形类型 Constant.REQUEST_SCAN_MODE:
>> 图形类型详情查看Constant类
>2.扫描图形方式 Constant.REQUEST_SCAN_TYPE:
>> 图形扫描方式详情查看Constant类
回调方法:
-----
```android
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intentDta) {
super.onActivityResult(requestCode, resultCode, intentDta);
if (intentDta != null) {
String extra = intentDta.getStringExtra(Constant.REQUEST_SCAN_MODE);
textView.setText(extra);
System.out.println("扫码测试===========data==" +extra );
}
}
```
如果是连续不断的扫描就得开线程循环不断的判断Constant.REQUEST_SCAN_MODE_ALL_DATA数据是否是null
```android循环数据
/**
* 测试扫描数据
*/
private void testData() {
new Thread(new Runnable() {
@Override
public void run() {
try {
while (true) {
if (Constant.REQUEST_SCAN_MODE_ALL_DATA != null) {
System.out.println("扫码测试=====001===" + Constant.REQUEST_SCAN_MODE_ALL_DATA);
Constant.REQUEST_SCAN_MODE_ALL_DATA = null;
}
Thread.sleep(500);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
```
需要用到的权限
```二维码权限
```
以上内容若有不清楚的地方请发送邮箱chaoqianhong@aliyun.com 获 chaoqianhong@163.com
=================================
以上内容会不定期的维护,希望能帮助到哟用的人