将提供的 AAR 文件加入到 App 工程的 libs 文件夹内,并且在 build.gradle 中添加下面的配置。
android{
//...
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
}
//添加依赖
dependencies {
//...other...
//集成sdk依赖
implementation 'com.alibaba:fastjson:1.2.73'
implementation 'com.squareup.okhttp3:okhttp:4.0.0'
implementation files('libs/cepm-sdk-release.aar')
implementation files('libs/sdkproject-release_enc.aar')
}
初始化:该步骤必须进行,否则无法调用
# 项目需要增加Application类
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
//必须执行初始化
CepmApp.init(this);
}
}
快速调用:
# 在MainActivity中单击某个按钮的代码逻辑
Credential cert=new Credential();
final FaceidSDK.IDCardInputData inputdata=FaceidSDK.getInstance().new IDCardInputData("xxx","xxx");
cert.setPassword("xxxx");
cert.setUserCode("xxxx");
cert.setUrl("xxxx");
cert.setSysName("xxxx");
FaceidSDK.getInstance().init(MainActivity.this,"你的LicenseID", cert,new FaceidSDK.FaceidLoginListener() {
@Override
public void onLoginSuccess() { //登录成功,拉起 入口方法一 的SDK 页面,
FaceidSDK.getInstance().startActivity(inputdata, new FaceidSDK.FaceidResultListener() {
@Override
public void onFailed(String errorCode, String errorMsg) {
//txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
}
@Override
public void onFinish(FaceidSDK.OutputData result) {
//txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
}
});
}
@Override
public void onLoginFailed(String errorCode, String errorMsg) {
}
});
完整demo和sdk下载 (跳转后点击查看原始文件)
SDK 代码调用的入口为 FaceidSDK
这个类。
public class FaceidSDK {
/**
* 该类为一个单例,需要先获得单例对象再进行后续操作
*/
public static FaceidSDK getInstance(){
// ...
}
/**
* 自定义动作参数,在init执行之前设置才有效
* 设置“人脸动作范围”,“从范围中随机选取几个动作”等参数
*/
public void setFaceSDKConfig(FaceSDKConfig faceSDKConfig) {
// ...
}
/**
* 在使用SDK前先初始化,
* 传入证书key `credential`,证书id LicenseID
* 由 FaceidLoginListener返回是否初始化SDK成功
*/
public void init(Context context,String LicenseID,Credential credential, FaceidLoginListener loginListerner){
// ...
}
/**
* 入口方法一 人脸核身
* 初始化成功后,调用此函数拉起sdk页面。
* 传入IDCardInputData(身份证,姓名)
* 由FaceidResultListener返回人脸核身结果。
*/
public void startActivity(IDCardInputData data,FaceidResultListener resultListener) {
// ...
}
/**
* 入口方法二 人脸比对
* 初始化成功后,调用此函数拉起sdk页面。
* 传入PhotoInputData(照片)
* 由FaceidResultListener返回人脸核身结果。
*/
public void startActivity(PhotoInputData data,FaceidResultListener resultListener) {
// ...
}
/**
* 入口方法三 照片采集
* 初始化成功后,调用此函数拉起sdk照片采集页面。
* 由faceDataResultListener返回照片。
*/
public void startActivity(faceDataResultListener resultListener) {
// ...
}
/**
* 初始化回调接口
*/
public interface FaceidLoginListener {
void onLoginSuccess();
void onLoginFailed(String errorCode, String errorMsg);
}
/**
* 人脸核身结果回调接口
*/
public interface FaceidResultListener{
void onFailed(String errorCode, String errorMsg);
void onFinish(OutputData result);
}
/**
* 照片采集结果回调接口
*/
public interface FaceDataResultListener {
void onFailed(String errorCode, String errorMsg);
void onFinish(OutputFaceData result);
}
startActivity()
的参数PhotoInputData和IDCardInputData用来传递数据:
String name; //姓名
String idNum; //身份证
----
DataItem photo;//照片信息
以上参数被分别封装在
FaceidSDK.PhotoInputData
,FaceidSDK.IDCardInputData
对象中。
关于接口调用的示例可参考 接入示例
IDCardInputData参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
---|---|---|---|---|
name | 核验人的姓名 | String | - | 是 |
idNum | 核验人的身份证号 | String | 32 | 是 |
PhotoInputData参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
---|---|---|---|---|
photo | 核验人的照片,DataItem属性见下表 | DataItem | - | 是 |
DataItem属性 | 说明 | 类型 | 是否必填 |
---|---|---|---|
origin | 文件类型 base64形式:self 链接形式:uri |
DataItem.DataOrigin | 是 |
data | 照片内容(base64或uri链接) | String | 是 |
FaceSDKConfig参数 | 说明 | 类型 |
---|---|---|
actions | 动作范围 可选”eye”,“mouth”,“headRight”,“headLeft”,“headUp”,“headDown”,“yaw” 默认包含所有 |
List<String> |
actionOrderRandom | 动作顺序是否随机,默认true | boolean |
actionNum | 随机从actions中选取几个动作,默认3 | int |
参数名 | 说明 |
---|---|
eye | 眨眼 |
mouth | 张嘴 |
headRight | 头右转 |
headLeft | 头左转 |
SDK 代码调用的入口为 OcrSDK
这个类。
public class OcrSDK {
/**
* 该类为一个单例,需要先获得单例对象再进行后续操作
*/
public static OcrSDK getInstance(){
// ...
}
/**
* 在使用SDK前先初始化,
* 传入证书key `credential`,
* 由 OcrLoginListener返回是否初始化SDK成功
*/
public void init(Context context,Credential credential, final OcrLoginListener loginListerner){
// ...
}
/**
* 登录成功后,调用此函数拉起sdk页面
* 打开拍摄页面,传入证件类型ocrType
*
* @param resultListener 返回拍摄图片的路径
*/
public void startTakePhotoActivity(TakePhotoResultListener resultListener,OcrType ocrType) {
// ...
}
/**
* 登录成功后,调用此函数拉起sdk页面
* 打开身份证正面识别
* @param resultListener 用于返回识别结果
*/
public void startIdCardFrontActivity(IdCardFrontResultListener resultListener) {
// ...
}
/**
* 登录成功后,调用此函数拉起sdk页面
* 打开身份证背面识别
* @param resultListener 用于返回识别结果
*/
public void startIdCardBackActivity(IdCardBackResultListener resultListener) {
// ...
}
/**
* 登录成功后,调用此函数拉起sdk页面
* 打开银行卡识别
* @param resultListener 用于返回识别结果
*/
public void startBankCardActivity(BankCardResultListener resultListener) {
// ...
}
/**
* 登录回调接口
*/
public interface OcrLoginListener {
void onLoginSuccess();
void onLoginFailed(String errorCode, String errorMsg);
}
/**
* Ocr结果回调接口
*/
public interface TakePhotoResultListener {
/**
* @RARAM exidCardResult SDK返回的识别结果的错误码
* @RARAM exidCardResult SDK返回的识别结果的错误信息
*/
void onFailed(String errorCode, String errorMsg);
void onFinish(String result);
}
/**
* Ocr结果回调接口
*/
public interface IdCardFrontResultListener {
/**
* @RARAM exidCardResult SDK返回的识别结果的错误码
* @RARAM exidCardResult SDK返回的识别结果的错误信息
*/
void onFailed(String errorCode, String errorMsg);
void onFinish(IdCardFrontData result);
}
/**
* Ocr结果回调接口
*/
public interface IdCardBackResultListener {
/**
* @RARAM exidCardResult SDK返回的识别结果的错误码
* @RARAM exidCardResult SDK返回的识别结果的错误信息
*/
void onFailed(String errorCode, String errorMsg);
void onFinish(IdCardBackData result);
}
/**
* Ocr结果回调接口
*/
public interface BankCardResultListener {
/**
* @RARAM exidCardResult SDK返回的识别结果的错误码
* @RARAM exidCardResult SDK返回的识别结果的错误信息
*/
void onFailed(String errorCode, String errorMsg);
void onFinish(BankCardData result);
}