在开始API开发工作之前,您需要完成必要的开发准备工作,同时请确保您的工程中已经配置HMS Core SDK的maven仓地址,并且完成了本服务的SDK集成。
开发者可以直接调用银行卡识别插件,无需自己处理视频流,直接通过回调函数获取识别结果,具体实现请参考示例代码:
1. 创建识别结果回调函数,重载onSuccess, onCanceled, onFailure, onDenied四个方法。
onCanceled 表示用户取消。
onFailure 表示识别失败。
onDenied 表示相机不可用等场景。
MLBcrCaptureResult 为识别返回结果。
- private MLBcrCapture.CallBack callback = new MLBcrCapture.CallBack() {
- @Override
- public void onSuccess(MLBcrCaptureResult bankCardResult){
- // 识别成功处理。
- }
- @Override
- public void onCanceled(){
- // 用户取消处理。
- }
- // 识别不到任何文字信息或识别过程发生系统异常的回调方法。
- // retCode:错误码。
- // bitmap:检测失败的卡证图片。
- @Override
- public void onFailure(int retCode, Bitmap bitmap){
- // 识别异常处理。
- }
- @Override
- public void onDenied(){
- // 相机不支持等场景处理。
- }
- };
2. 设置识别参数,调用识别器captureFrame接口进行识别,识别结果会通过步骤1的回调函数返回。
- private void startCaptureActivity(MLBcrCapture.CallBack callback) {
- MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()
- // 设置银行卡识别期望返回的结果类型。
- // MLBcrCaptureConfig.SIMPLE_RESULT:仅识别卡号、有效期信息。
- // MLBcrCaptureConfig.ALL_RESULT:识别卡号、有效期、发卡行、发卡组织和卡类别等信息。
- .setResultType(MLBcrCaptureConfig.RESULT_SIMPLE)
- // 设置识别界面横竖屏,支持三种模式:
- // MLBcrCaptureConfig.ORIENTATION_AUTO: 自适应模式,由物理感应器决定显示方向。
- // MLBcrCaptureConfig.ORIENTATION_LANDSCAPE: 横屏模式。
- // MLBcrCaptureConfig.ORIENTATION_PORTRAIT: 竖屏模式。
- .setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO)
- .create();
- MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config);
- bankCapture.captureFrame(this, callback);
- }
3. 在检测按钮的回调中,调用步骤2中定义的方法,实现银行卡识别。
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- // 检测按钮。
- case R.id.detect:
- startCaptureActivity(callback);
- break;
- default:
- break;
- }
- }