目录

在开始API开发工作之前,您需要完成必要的开发准备工作,同时请确保您的工程中已经配置HMS Core SDK的maven仓地址,并且完成了本服务的SDK集成。

使用插件进行视频流银行卡识别

开发者可以直接调用银行卡识别插件,无需自己处理视频流,直接通过回调函数获取识别结果,具体实现请参考示例代码:

1. 创建识别结果回调函数,重载onSuccess, onCanceled, onFailure, onDenied四个方法。

  1. private MLBcrCapture.CallBack callback = new MLBcrCapture.CallBack() {
  2.    @Override
  3.    public void onSuccess(MLBcrCaptureResult bankCardResult){
  4.        // 识别成功处理。
  5.    }  
  6.    @Override
  7.    public void onCanceled(){
  8.        // 用户取消处理。
  9.    }  
  10.    // 识别不到任何文字信息或识别过程发生系统异常的回调方法。
  11.    // retCode:错误码。
  12.    // bitmap:检测失败的卡证图片。
  13.    @Override
  14.    public void onFailure(int retCode, Bitmap bitmap){
  15.        // 识别异常处理。
  16.    }
  17.    @Override
  18.    public void onDenied(){
  19.        // 相机不支持等场景处理。
  20.    }  
  21. };

2. 设置识别参数,调用识别器captureFrame接口进行识别,识别结果会通过步骤1的回调函数返回。

  1. private void startCaptureActivity(MLBcrCapture.CallBack callback) {
  2.    MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()
  3.        // 设置银行卡识别期望返回的结果类型。
  4.        // MLBcrCaptureConfig.SIMPLE_RESULT:仅识别卡号、有效期信息。
  5.        // MLBcrCaptureConfig.ALL_RESULT:识别卡号、有效期、发卡行、发卡组织和卡类别等信息。
  6.        .setResultType(MLBcrCaptureConfig.RESULT_SIMPLE)
  7.        // 设置识别界面横竖屏,支持三种模式:
  8.        // MLBcrCaptureConfig.ORIENTATION_AUTO: 自适应模式,由物理感应器决定显示方向。
  9.        // MLBcrCaptureConfig.ORIENTATION_LANDSCAPE: 横屏模式。
  10.        // MLBcrCaptureConfig.ORIENTATION_PORTRAIT: 竖屏模式。
  11.        .setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO)
  12.        .create();
  13.    MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config);
  14.    bankCapture.captureFrame(this, callback);
  15. }

3. 在检测按钮的回调中,调用步骤2中定义的方法,实现银行卡识别。

  1. @Override
  2. public void onClick(View v) {
  3.    switch (v.getId()) {
  4.        // 检测按钮。
  5.        case R.id.detect:
  6.            startCaptureActivity(callback);
  7.            break;
  8.        default:
  9.            break;
  10.    }
  11. }