androidsim卡管理(识别卡怎么绑定手机)
华为HMS MLKit提供越来越多的服务。上期介绍了银行卡识别的功能。从上一期的介绍中我们可以知道,使用专用的银行卡识别接口,只需要几行代码就可以识别出银行卡号。那么,有的朋友可能会问,我要识别的卡不是银行卡。会员卡可以识别吗,或者某一种证件号码可以识别吗?没有问题~但是由于不同的商户卡号和布局风格不同,无法像银行卡识别那样使用专用的银行卡识别API。这时候我们可以选择通用卡识别的能力,它可以为你提供一个标准的通用卡对准盒。只要拉起对齐框,就可以得到对齐框中识别的卡的所有内容。这时候你就可以针对这些内容按照一定的规则提取关键信息,你就可以得到你想要的了。比如连续的8位数字就是卡号,或者某些特殊字母后的内容就是卡号内容。
通用卡识别,顾名思义就是各种卡的识别,可以识别的范围很广。常用应用场景:
我给你画了一个简单的流程图,你可以看到只需要把图片、照片、视频发送到ML Kit就可以得到相应的识别内容,对识别内容做一些后期处理就可以提取出要识别的卡号内容。
可见开发过程也很简单。你只需要启动卡片识别活动,获取活动识别的内容,然后简单的对内容进行后期处理提取关键信息就可以完成代码开发。
核心提示:端到端能力全部免费,覆盖所有终端!非华为手机也可以。
在实际开发中,已经实现了港澳通行证、回乡证、香港居民身份证的办理,大家可以参考。
详细准备步骤请参考华为开发者联盟:https://Developer . Huawei.com/consumer/cn/doc/development/HMS-guides/ml-process-4。
以下是一些关键的开发步骤。
打开AndroidStudio项目级build.gradle文件,增量添加以下maven地址:
build script { repositories { maven { URL ' http://developer . Huawei.com/Repo/' } } }所有项目{ repositories { maven { URL ' http://developer . Huawei.com/Repo/' } } } 1.2在应用级build.gradle中添加SDK依赖项{//介绍基本SDK实现' com . Huawei . HMS 3360ml-computer-vision-ocr 33601 . 0 . 3 . 300 '//介绍拉丁字符识别模型包实现' com . Huawei . HMS 333
.1.3根据官方网站的说明配置混淆脚本:
https://developer . Huawei.com/consumer/cn/doc/development/HMS-Guides/ml-configuringobfusion-scripts-4
都是一些基本操作,废话不多。按照官网说明操作:
https://developer . Huawei.com/consumer/cn/doc/development/HMS-Guides/ml-分配-权限-4
私有StartCapture活动(Object Object,mlgccapture . callback callback){//创建通用卡识别配置器。MLGcrCaptureConfig cardConfig=new MLGcrCaptureConfig。工厂()。create();//创建通用卡识别接口配置器。gcrcapturiconfig ui config=newmlgcrcapturiconfig . factory()//设置扫描框颜色。setscanboxcornercolor(color . green)//设置扫描框中的提示文字,建议30个字以内。
符。 .setTipText("Recognizing, align edges") // 设置识别界面横竖屏,支持三种模式: // MLGcrCaptureUIConfig.ORIENTATION_AUTO:自动模式,由物理感应器决定显示方向。 // MLGcrCaptureUIConfig.ORIENTATION_LANDSCAPE:横屏模式。 // MLGcrCaptureUIConfig.ORIENTATION_PORTRAIT:竖屏模式。 .setOrientation(MLGcrCaptureUIConfig.ORIENTATION_AUTO) .create(); // 方式一:根据自定义的卡证识别界面配置器,创建通用卡证识别处理器。 MLGcrCapture ocrManager = MLGcrCaptureFactory.getInstance().getGcrCapture(cardConfig, uiConfig); // 方式二:使用默认界面,创建通用卡证识别处理器。 MLGcrCapture ocrManager = MLGcrCaptureFactory.getInstance().getGcrCapture(cardConfig); // 绑定通用卡证识别处理器和处理结果回调函数。 ocrManager.capturePreview(this, object, callback); }拍照识别
private void startTakePhotoActivity(Object object, MLGcrCapture.Callback callback) { // 创建通用卡证识别配置器。 MLGcrCaptureConfig cardConfig = new MLGcrCaptureConfig.Factory().create(); // 创建通用卡证识别界面配置器。 MLGcrCaptureUIConfig uiConfig = new MLGcrCaptureUIConfig.Factory() // 设置扫描框颜色。 .setScanBoxCornerColor(Color.BLUE) // 设置扫描框中的提示文字,建议少于30个字符。 .setTipText("Taking picture, align edges") // 设置界面横竖屏,支持三种模式: // MLGcrCaptureUIConfig.ORIENTATION_AUTO:自动模式,由物理感应器决定显示方向。 // MLGcrCaptureUIConfig.ORIENTATION_LANDSCAPE:横屏模式。 // MLGcrCaptureUIConfig.ORIENTATION_PORTRAIT:竖屏模式。 .setOrientation(MLGcrCaptureUIConfig.ORIENTATION_AUTO) .create(); // 方式一:根据自定义的卡证识别界面配置器,创建通用卡证识别处理器。 MLGcrCapture ocrManager = MLGcrCaptureFactory.getInstance().getGcrCapture(cardConfig, uiConfig); // 方式二:使用默认界面,创建通用卡证识别处理器。 MLGcrCapture ocrManager = MLGcrCaptureFactory.getInstance().getGcrCapture(cardConfig); // 绑定通用卡证识别处理器和处理结果回调函数。 ocrManager.capturePhoto(this, object, callback); }
相册图片识别
private void startLocalImageActivity(Bitmap bitmap, Object object, MLGcrCapture.Callback callback) { // 创建通用卡证识别配置器。 MLGcrCaptureConfig config = new MLGcrCaptureConfig.Factory().create(); MLGcrCapture ocrManager = MLGcrCaptureFactory.getInstance().getGcrCapture(config); // bitmap 为需要识别的Bitmap类型卡证图像,支持的图片格式包括:jpg/jpeg/png/bmp。 ocrManager.captureImage(bitmap, object, callback); }2.2 对识别后的内容做后处理,进行关键信息提取
重载onResult, onCanceled, onFailure, onDenied四个方法;onResult表示返回了结果,MLGcrCaptureResult为卡证识别返回的结果,onCanceled 表示用户取消,onFailure 表示识别失败,onDenied 表示相机不可用等场景。
源码已经上传github,大家也可以在github上一起完善该功能。
github源码地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample
通用卡证识别demo代码路径:
MLKit-Samplemodule-textsrcmainjavacommlkitsampleactivityGeneralCardRecognitionActivity.java
更详细的开发指南参考华为开发者联盟官网
华为开发者联盟机器学习服务开发指南