高仿微信扫一扫,Android端极速二维码/条形码识别。 使用CameraX + MLKit机器学习套件实现。
- 支持一屏多码识别
- 支持双击及手势缩放
- 支持弱光环境监测提示开启闪光灯
- 支持相册扫码
- CameraX自带生命周期管理
- Android5.0及以上
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.mtjsoft:CameraXBarcodeScanning:1.3.1'
}
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
/**
* 开始扫描
*/
private fun startScann() {
ScanningManager.instance.openScanningActivity(
this,
Config(
true,
ScanType.QR_CODE,
object : AlbumOnClickListener {
override fun onClick(v: View, callBack: CallBackFileUri) {
// 1、检查申请必要的权限
// 2、相册选完图片,回调uri进行识别
pictureSelector(callBack)
}
},
object : ScanResultListener {
override fun onSuccessListener(value: String?) {
resultView.text = "扫码结果: \n$value"
}
override fun onFailureListener(error: String) {
}
override fun onCompleteListener(value: String?) {
}
})
)
}
# Config 参数说明
Config(
/**
* 是否开启多码识别
* 不开启时,取最大范围的
*/
val enabled: Boolean = true,
/**
* 默认扫码类型
* 二维码 / 条形码
*/
@ScanType
val scanType: Int = ScanType.QR_CODE,
/**
* 相册点击回调
*/
var albumOnClickListener: AlbumOnClickListener? = null,
/**
* 扫码回调
*/
val scanResultListener: ScanResultListener? = null
)
- 相册按钮的处理使用回调交由App自定义处理。SDK不再内置相册处理
- 相册选择图片处理
- 相册扫码的图片加载引擎外置。详见GlideEngine