如何在Android设备上识别读取美国驾照信息

根据美国机动车管理者协会(AAMVA https://www.aamva.org/DL-ID-Card-Design-Standard/)的规定,美国驾照使用PDF417编码,如下图:Google Mobile Vision SDK谷歌服务是支持驾照解析的,可以在Mobile Vision SDK中找到对应的类。要测试驾照识别,可以稍微改造下谷歌的示例代码https://github.com/googlesamples/android-vision/tree/master/visionSamples/
摘要由CSDN通过智能技术生成

根据美国机动车管理者协会(AAMVA https://www.aamva.org/DL-ID-Card-Design-Standard/)的规定,美国驾照使用PDF417编码,如下图:

在这里插入图片描述

Google Mobile Vision SDK

谷歌服务是支持驾照解析的,可以在Mobile Vision SDK中找到对应的类。要测试驾照识别,可以稍微改造下谷歌的示例代码https://github.com/googlesamples/android-vision/tree/master/visionSamples/barcode-reader

onBarcodeDetected(Barcode barcode)回调中判断barcode类别是否是PDF417

if (barcode.format == Barcode.PDF417) {
   
 
    Barcode.DriverLicense driverLicense = barcode.driverLicense;
    if (driverLicense != null) {
   
        Intent intent = new Intent(BarcodeCaptureActivity.this, ResultActivity.class);
        intent.putExtra("DriverLicense", driverLicense);
        startActivity(intent);
    }
}

如果得到了驾照信息,就启动一个新的Activity显示结果:

public class ResultActivity extends AppCompatActivity {
   
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
   
 
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setVerticalScrollBarEnabled(true);
        tv.setText("");
        tv.setMovementMethod(new ScrollingMovementMethod());
 
        Intent intent = getIntent();
        if (intent != null) {
   
            Barcode.DriverLicense driverLicense = (Barcode.DriverLicense) intent.getParcelableExtra("DriverLicense");
            if (driverLicense != null) {
   
                String documentType = driverLicense.documentType;
                tv.append("Document Type:\n" + documentType + "\n\n");
                String firstName = driverLicense.firstName;
                tv.append("First Name:\n" + firstName + "\n\n");
                String middleName = driverLicense.middleName;
                tv.append("Middle Name:\n" + middleName + "\n\n");
                String lastName = driverLicense.lastName;
                tv.append("Last Name:\n" + lastName + "\n\n");
                String gender = driverLicense.gender;
                tv.append("Gender: \n" + gender + "\n\n");
                String addressStreet = driverLicense.addressStreet;
                tv.append("Street:\n" + addressStreet + "\n\n");
                String addressCity = driverLicense.addressCity;
                tv.append("City:\n" + addressCity + "\n\n");
                String addressState = driverLicense.addressState;
                tv.append("State:\n" + addressState + "\n\n");
                String addressZip = driverLicense.addressZip;
                tv.append("Zip:\n" + addressZip + "\n\n");
                String licenseNumber = driverLicense.licenseNumber;
                tv.append("License Number:\n" + licenseNumber + "\n\n");
                String issueDate = driverLicense.issueDate;
                tv.append("Issue Date:\n" + issueDate + "\n\n");
                String expiryDate = driverLicense.expiryDate;
                tv.append("Expiry Date:\n" + expiryDate + "\n\n");
                String birthDate = driverLicense.birthDate;
                tv.append("Birth Date:\n" + birthDate + "\n\n");
                String issuingCountry = driverLicense.issuingCountry;
                tv.append("Issue Country:\n" + issuingCountry + "\n\n");
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值