SDK接入文档(Android版)
SDK接入文档
入口类:IDCardManager
1 获取IDCardManager实例
/**
* 获取IDCardManager实例
* @return IDCardManager
*/
public synchronized static IDCardManager getInstance()
2 初始化
/**
* 初始化
* @param context
* @param sign 身份签名
* @param signVersion 签名算法版本
* @param config 用户检测配置
* @param initCallBack 初始化回调监听
*/
public void init(Context context,String sign,String signVersion,UserDetectConfig config,InitCallBack initCallBack)
public class UserDetectConfig {
private int screenDirection=0;//屏幕方向 0竖屏 1 横屏
private int captureImage=0;//0:双面,1:人像面,2:国徽面(默认双面)
}
/**
* 初始化回调监听
*/
public interface InitCallBack{
/**
* 初始化成功
*/
void initSuccess(String bizToken);
/**
* 初始化失败
* @param resultCode 错误结果码
* @param resultMessage 错误消息
*/
void initFailed(int resultCode,String resultMessage);
}
3 设置检测结果回调监听
/**
* 设置检测回到监听
*/
public void setIdCardDetectListener(IDCardDetectListener idCardDetectListener)
/**
* 检测回调
*/
public interface IDCardDetectListener {
void onIdCardDetectFinish(IDCardResult result);
}
4 开始检测
/**
*开始检测
*@param bizToken
*@param bizNo 客户业务流水号
*/
public void startDetect(Context context,String bizToken,String bizNo)
5 获取sdk构建信息
/**
*@return sdk构建信息
*/
public String getBuildInfo()
6 获取sdk版本号
public String getBuildInfo()
返回值
public class IDCardResult {
private int resultCode; //结果码
private String resultMessage; //结果信息
private String bizNo;
private IDCardInfo idCardInfo; //身份证识别结果
}
public class IDCardInfo {
private byte[] imageFrontside; //身份证正面拍摄照片
private byte[] imageBackside; //身份证背面拍摄照片
private byte[] imagePortrait; //身份证人像照片
/**
*表示身份证正面图片的完整性,平整性;
*0:表示身份证部分是完整的;
*1:表示身份证不完整,但是内容区域全部都在图片内;
*2:表示身份证不完整,且部分内容在区域外;
*/
private int frontsideCompleteness;
private int backsideCompleteness;//身份证背面 同上
private PointF[] frontsideCardRect;// 返回四个点的坐标 顺序为 左上 右上 右下 左下
private PointF[] backsideCardRect;// 返回四个点的坐标 顺序为 左上 右上 右下 左下
private AttrStruct name; //姓名
private AttrStruct gender; //性别
private AttrStruct nationality;//民族
private AttrStruct birthYear; //出生年
private AttrStruct birthMonth;//出生月
private AttrStruct birthDay;//出生日
private AttrStruct idcardNumber;//身份证号码
private AttrStruct address;//住址
private AttrStruct portrait;//照片
private AttrStruct validDateStart;//有效期起始日期
private AttrStruct validDateEnd; //有效期截止日期
private AttrStruct issuedBy;//签发机关
private LegalityStruct frontsideLegality;//表示对身份证正面照片的五种分类的结果 包含五个key-value pair,每个key表示一种分类类型,每个value为此类型的概率值(取[0,1]区间实数
private LegalityStruct backsideLegality;//表示对身份证背面照片的五种分类的结果
}
public class AttrStruct {
private String text;//文字
private PointF[] rect;// 返回四个点的坐标 顺序为 左上 右上 右下 左下
private float quality;// 可信度
private int logic;//是否有逻辑错误 0正常 1 有逻辑错误
}
public class LegalityStruct {
private float edited;//用工具合成或者编辑过的身份证图片得分
private float idPhoto;//正式身份证照片得分
private float phoneCopy;//正式身份证的复印件得分
private float screen;//手机或电脑屏幕翻拍的照片得分
private float temporaryIdPhoto;//临时身份证照片得分
private float idPhotoThreshold;//表示判断为正式身份证照片的阈值,通常来说,如果idPhoto的值不低于该阈值,可以认定为真实身份证的实拍;
}
接入文档
1 将idcard_ocr.aar放入项目中,路径如xxx/app/libs
2 build.gradle文件中加入如下代码
repositories{
flatDir{
dirs 'libs'
}
}
dependencies {
...
compile(name:'idcard_ocr', ext:'aar')
}
3 调用实例
//设置检测监听回调
IDCardManager.getInstance().setIdCardDetectListener(DemoActivity.this);
//初始化
IDCardManager.getInstance().init(DemoActivity.this, sign, "hmac_sha1", new IDCardManager.InitCallBack() {
@Override
public void initSuccess(String bizToken) {
//初始化成功后调用开始检测
IDCardManager.getInstance().startDetect(DemoActivity.this, bizToken, "");
}
@Override
public void initFailed(int resultCode, String resultMessage) {
}
});