From 051947edc5ea06e3ba69e6cb8b6d2561104366ab Mon Sep 17 00:00:00 2001 From: Jenly Date: Wed, 3 Mar 2021 17:21:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B3=A8=E9=87=8A=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/src/main/java/com/king/zxing/CameraScan.java | 12 +++++++++++- .../main/java/com/king/zxing/DefaultCameraScan.java | 6 +++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/src/main/java/com/king/zxing/CameraScan.java b/lib/src/main/java/com/king/zxing/CameraScan.java index 6fd2999..3fd6686 100644 --- a/lib/src/main/java/com/king/zxing/CameraScan.java +++ b/lib/src/main/java/com/king/zxing/CameraScan.java @@ -81,7 +81,7 @@ public abstract class CameraScan implements ICamera,ICameraControl { public abstract CameraScan setCameraConfig(CameraConfig cameraConfig); /** - * 设置是否分析图像 + * 设置是否分析图像,通过此方法可以动态控制是否分析图像,常用于中断扫码识别。如:连扫时,扫到结果,然后停止分析图像 * @param analyze */ public abstract CameraScan setAnalyzeImage(boolean analyze); @@ -136,6 +136,16 @@ public abstract class CameraScan implements ICamera,ICameraControl { public abstract CameraScan setBrightLightLux(float lightLux); public interface OnScanResultCallback{ + /** + * 扫码结果回调 + * @param result + * @return 返回false表示不拦截,将关闭扫码界面并将结果返回给调用界面; + * 返回true表示拦截,需自己处理逻辑。当isAnalyze为true时,默认会继续分析图像(也就是连扫)。 + * 如果只是想拦截扫码结果回调,并不想继续分析图像(不想连扫),请在拦截扫码逻辑处通过调 + * 用{@link CameraScan#setAnalyzeImage(boolean)}, + * 因为{@link CameraScan#setAnalyzeImage(boolean)}方法能动态控制是否继续分析图像。 + * + */ boolean onScanResultCallback(Result result); } diff --git a/lib/src/main/java/com/king/zxing/DefaultCameraScan.java b/lib/src/main/java/com/king/zxing/DefaultCameraScan.java index 0c55838..d1ebb8a 100644 --- a/lib/src/main/java/com/king/zxing/DefaultCameraScan.java +++ b/lib/src/main/java/com/king/zxing/DefaultCameraScan.java @@ -297,7 +297,11 @@ public class DefaultCameraScan extends CameraScan { private void scanResultCallback(Result result){ if(mOnScanResultCallback != null && mOnScanResultCallback.onScanResultCallback(result)){ - //如果拦截了结果,则重置分析结果状态,直接可以连扫 + /* + * 如果拦截了结果,则重置分析结果状态,并当isAnalyze为true时,默认会继续分析图像(也就是连扫)。 + * 如果只是想拦截扫码结果回调,并不想继续分析图像(不想连扫),请在拦截扫码逻辑处通过调用 + * setAnalyzeImage(false),因为setAnalyzeImage方法能动态控制是否继续分析图像。 + */ isAnalyzeResult = false; return; }