Android|教你如何在安卓上实现通用卡证识别一键各种卡绑定( 三 )


private MLGcrCapture.Callback callback = new MLGcrCapture.Callback() {@Overridepublic int onResult(MLGcrCaptureResult result, Object object) {Log.i(TAG, "callback onRecSuccess");if (result == null) {Log.e(TAG, "callback onRecSuccess result is null");return MLGcrCaptureResult.CAPTURE_CONTINUE;}GeneralCardProcessor idCard = null;GeneralCardResult cardResult = null;/*港澳台通行证处理*/if (cardTypeEnum == CardType.PASSCARD) {idCard = new PassCardProcessor(result.text);/*香港身份证处理*/} else if (cardTypeEnum == CardType.HKIDCARD) {idCard = new HKIdCardProcessor(result.text);/*回乡证处理*/} else if (cardTypeEnum == CardType.COMEHOMECARD) {idCard = new HomeCardProcessor(result.text);}if (idCard != null) {/*获取处理后的结果*/cardResult = idCard.getResult();}showFrontImage(result.cardBitmap);displayResult(cardResult);// If the results don't matchif (cardResult == null || cardResult.valid.isEmpty() || cardResult.number.isEmpty()) {return MLGcrCaptureResult.CAPTURE_CONTINUE;}displayResult(cardResult);return MLGcrCaptureResult.CAPTURE_STOP;}};}};??具体的卡号提取处理逻辑可以通过重写GeneralCardProcessor 类中的getResult()方法来完成,以港澳台通行证举例,更加详细的处理可以看github上的源码:
public class PassCardProcessor implements GeneralCardProcessor {private static final String TAG = "PassCardProcessor";private final MLText text;public PassCardProcessor(MLText text) {this.text = text;}@Overridepublic GeneralCardResult getResult() {List blocks = text.getBlocks();if (blocks.isEmpty()) {Log.i(TAG, "Result blocks is empty");return null;}ArrayList originItems = getOriginItems(blocks);String valid = "";String number = "";boolean validFlag = false;boolean numberFlag = false;for (BlockItem item : originItems) {String tempStr = item.text;if (!validFlag) {String result = tryGetValidDate(tempStr);if (!result.isEmpty()) {valid = result;validFlag = true;}}if (!numberFlag) {String result = tryGetCardNumber(tempStr);if (!result.isEmpty()) {number = result;numberFlag = true;}}}return new GeneralCardResult(valid, number);} }Demo 效果 看下Demo效果如何,是不是还不错!

Android|教你如何在安卓上实现通用卡证识别一键各种卡绑定

文章插图
github 源码源码已经上传github,大家也可以在github上一起完善该功能 。
github源码地址:https://github.com/HMS-MLKit/HUAWEI-HMS-MLKit-Sample
通用卡证识别demo代码路径:
MLKit-Samplemodule-textsrcmainjavacommlkitsampleactivityGeneralCardRecognitionActivity.java
更详细的开发指南参考华为开发者联盟官网
华为开发者联盟机器学习服务开发指南
内容来源:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0201226181206630022&fid=18
原作者:AI_talking
Android|教你如何在安卓上实现通用卡证识别一键各种卡绑定

文章插图
安卓手机如何添加门禁卡vivo手机添加NFC门禁卡操作步骤如下:
1、首先进入手机设置—其他网络与连接/更多设置—NFC—开启NFC开关与NFC读卡开关,同时设置付款方式为vivo钱包;
2、然后进入vivo钱包门禁卡页面,选择需要开卡的类型;
3、将非加密实体门禁卡靠近手机NFC天线进行读卡;
4、根据页面提示完成身份验证进行写卡,即可添加门禁卡 。【Android|教你如何在安卓上实现通用卡证识别一键各种卡绑定】
Android|教你如何在安卓上实现通用卡证识别一键各种卡绑定

文章插图
android pay怎么绑定银行卡绑定银行卡的方法:
① iPhone 6s、iPhone 6s Plus、iPhone 6和iPhone 6 Plus机型
- 打开Wallet应用;
- 轻点右上角的加号图标;输入卡片的安全码,即可从苹果账户添加信用卡或借记卡;或者选择“添加其他卡片” , 并使用你的摄像头扫描输入卡片信息 。
② Apple Watch
- 在你的iPhone上打开Watch应用;