API

类及接口说明

类文件 说明
QrCodeActivity 已实现扫码 Activity,可直接使用
QrCodeScanView 扫码 view 组件
ValuesCallback 解码结果回调接口
FileDecoder 图片文件解析类
IPreviewRectProvider 扫码识别区域控制类

扫码页面

  • 接口定义

    SDK 提供完整的扫码页面,可直接使用,并可通过 onActivityResult 接收返回的扫码结果。

  • sample

public static final int REQUEST_CODE_SCAN_QRCODE = 101;

//启动扫码页面
Intent intent = QrCodeActivity.from(this)
                    .enableAutoFlash(autoFlash)
                    .enableAlbum(true)
                    .enableMultiCodeSelection(true)
                    .setFilters(mKeywords)
                    .getIntent();

//接收扫码页面的返回结果
@Override
public void onActivityResult(int requestCode, int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case REQUEST_CODE_SCAN_QRCODE:
            if (resultCode != Activity.RESULT_OK) {
                return;
            }
            //获取扫码返回结果
            ArrayList<ScanResult> values = intent.getParcelableArrayListExtra("value");
            break;
    }
}

扫码 View

  • 接口定义
    //打开闪光灯
  public void setFlashLightOn();

  //关闭闪光灯
  public void setFlashLightOff();

  //设置结果回调
  public void setResultCallback(ValueCallback<String> callback);

  //设置扫码区域提供对象
  public void setPreviewProvider(IPreviewRectProvider provider);

图片文件解析类

  • 接口定义
//传入文件路径进行解析
public void decode(Context context, long session, String filePath, final ValueCallback<String> callback)
//传入bitmap对象进行解析
public void decode(Context context, long session, Bitmap bitmap, final ValueCallback<String> callback)

session 值需要保持唯一。

  • sample
FileDecoder.get().decode(getApplicationContext(), System.currentTimeMillis(), filePath, this);

解码结果回调接口

  • 回调类
public abstract class ValuesCallback implements ValueCallback<String>{
    public abstract void onResults(List<ScanResult> values);
}
  • Sample
ValuesCallback mScanCallback = new ValuesCallback() {
    @Override
    public void onResults(final List<ScanResult> values) {
        if(values == null){
            return;
        }
        MainThreadUtils.post(new Runnable() {
            @Override
            public void run() {
                ToastUtils.show(getApplicationContext(), values.toString(), 
                    Toast.LENGTH_LONG);
            }
        });
    }
};

识别区域控制接口

  • 接口定义
public interface IPreviewRectProvider {
    Rect getPreviewRect();
}
  • 设置 QrCodeScanView 的 PreviewProvider 提供者
mScanView.setPreviewProvider(IPreviewRectProvider);

设置识别检测的矩形区域

  • Sample
    @Override
    public Rect getPreviewRect() {
        if(mScanRect == null){
            mScanRect = new Rect(50,mPreView.getTop(),ScreenUtils.getScreenWidth(this)-50,mPreView.getTop()+mPreView.getHeight());
        }
        return mScanRect;
    }
Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""