这是一个基于腾讯优图提供的身份证识别接口(免费的)编写的module,可一键导入你的项目中使用,无需自己编写相机功能和接口交互
dependencies {
compile 'com.example.orcdemo:CNIDCardORC:1.0.0'
}
在你需要获取身份证数据的Activity里设置跳转,如
- 身份证相片面
Intent scanIntent = new Intent(context, CameraFrontActivity.class);
startActivityForResult(scanIntent, 1);
- 身份证国徽面
Intent scanIntent = new Intent(context, CameraBackActivity.class);
startActivityForResult(scanIntent, 1);
然后再重写onActivityResult()
获取返回的数据,如
- 身份证相片面
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
String name = data.getStringExtra("name");
String sex = data.getStringExtra("sex");
String nation = data.getStringExtra("nation");
String address = data.getStringExtra("address");
String id = data.getStringExtra("id");
}
}
- 身份证国徽面
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
String location = data.getStringExtra("date");
String date=data.getStringExtra("location");
}
}
拿到数据之后你就可以对数据进行操作了
因为需要联网,所以记得再AndroidManifest
里加入联网权限
<uses-permission android:name="android.permission.INTERNET"/>
而相机权限则已经封装在了BaseActivity
里,如果想偷懒不想写相机权限的话可以让你的Activity继承BaseActivity
,然后再将你的跳转放进下面的方法里
BaseActivity.requestRuntimePermission(new String[]{Manifest.permission.CAMERA}, new PermissionListener() {
@Override
public void onGranted() {
//放入你的操作
}
@Override
public void onDenied(List<String> deniedPermission) {}
});
这个BaseActivity
可以用于各种权限申请,只需要将String[]{}里的权限改掉即可