Android进入活体检测前需要进行预处理,以验明身份并初始化SDK。预处理完成后开始活体检测,完成活体后返回data用于后续verify验证。
-
获取MegLiveManager单例
Android SDK 代码调用的入口为
MegLiveManager
这个类,该类是管理活体认证的类,此类不可以初始化,只能通过getInstance获得其单例。只有在获取单例成功后才能进入后续的预处理及活体检测流程。
MegLiveManager.getInstance
函数名 | getInstance |
MegLiveManager getInstance() | |
名称 | 获取MegLiveManager的实例 |
类型说明 | 函数 |
说明 | 获取MegLiveManager的单例 |
返回值 |
|
MegLiveManager | 一个实例 |
MegLiveManager.getVersion
函数名 | getVersion |
String getVersion() | |
名称 | 获取SDK的版本号 |
类型说明 | 函数 |
说明 | 无 |
返回值 |
|
String | 一个字符串,表示当前SDK的版本号。如:MegLiveStill 3.0.0 |
MegLiveManager.getBuildInfo
函数名 | getBuildInfo |
String getBuildInfo() | |
名称 | 获取SDK的构建信息 |
类型说明 | 函数 |
说明 | 无 |
返回值 |
|
String | 一个字符串 |
- 预处理
获取MegLiveManager单例成功后,可进行SDK的预处理,初始化SDK的同时进行鉴权验证。
MegLiveManager.preDetect
函数名 | preDetect | |
void preDetect(Context context, String token,String language, String host, String modelPath, PreCallback callback) | ||
名称 | 活体检测预处理接口,结果会以callback返回。失败则无法进行以后所有工作 | |
类型说明 | 函数 | |
说明 | 监听者会在活体验证结束后被调用,如果没有设置,则不会调用 | |
变量名 | 说明 | 类型 |
context | Android上下文 | Context |
token | 业务流水号,每次验证前,通过服务端API获取的业务流水号(bizToken) | String |
language |
语种 参照ISO 639标准
使用系统默认传null |
String |
host |
网络请求host
host取值见附录E 【host取值列表】,请根据具体情况选择host取值 |
String |
modelPath | 模型本地存放路径 | String |
callback | PreCallback的类对象,接收预处理结果,详见回调函数PreCallback说明 | PreCallback |
预处理的结果将由PreCallback类接受,该类是一个活体检测前预处理的回调接口,开启活体验证之前需要优先调用此接口。
MegLiveManager.setTextContent
函数名 | setTextContent |
void setTextContent(String key,String content); | |
名称 | 设置TextContent |
类型说明 | 函数 |
说明 |
设置新增UI定制
Key目前仅支持:livenessHomeUpperInfoTextContent Value:要设置的内容 |
返回值 | 无 |
getSdkLog
函数名 | getSdkLog |
String getSdkLog() | |
名称 | 获取SDKLog 信息 |
类型说明 | 函数 |
说明 | 无 |
返回值 |
|
String | 一个加密字符串,用于协助分析定位SDK使用过程中的问题 |
setVerticalDetectionType
函数名 | setVerticalDetectionType | |
void setVerticalDetectionType(@Vertical int verticalDetection) | ||
名称 | 垂直检测设置 | |
类型说明 | 函数 | |
说明 |
MegLiveManager. DETECT_VERITICAL_FRONT前两秒检测
MegLiveManager. DETECT_VERITICAL_KEEP始终检测 MegLiveManager. DETECT_VERITICAL_DISABLE不检测 |
|
变量名 | 说明 | 类型 |
verticalDetection | 垂直检测类型 | int |
PreCallback. onPreStart
PreCallback是一个活体检测前预处理的回调接口,开启活体验证之前需要优先调用此接口
函数名 | onPreStart |
void onPreStart() | |
名称 | 开启预处理 |
类型说明 | 函数 |
说明 | 此处无实际意义,代表预处理开启,此处可用于展示progress bar |
PreCallback. onPreFinish
函数名 | onPreFinish | |
void onPreFinish(String token,int errorCode,String errorMessage) | ||
名称 | 完成预处理之后的回调 | |
类型说明 | 函数 | |
说明 | 只有当完成预处理且errorCode==1000的时候才可以调用startDetect开启活体检测 | |
变量名 | 说明 | 类型 |
token | 业务流水号,用户调用预处理传入的token | String |
errorCode | 预处理结果码,具体错误码参考文档ErrorCode说明 | int |
errorMessage | 预处理结果信息,具体错误信息参考文档ErrorCode说明 | String |
至此,预处理完成。
- 进行活体检测
在预处理接口onPreFinish成功回调且errorCode==1000后,开始活体认证,验证结果以DetectCallback回调函数返回。
MegLiveManager. startDetect
函数名 | startDetect | |
void startDetect(DetectCallback callback); | ||
名称 | 开始活体认证 | |
类型说明 | 函数 | |
说明 | 在预处理接口onPreFinish成功回调且errorCode==1000的时候才能开启 | |
变量名 | 说明 | 类型 |
callback | DetectCallback的类对象,接受活体结果的接口,详见回调函数DetectCallback说明 | DetectCallback |
接口DetectCallback
活体检测的结果由DetectCallback的类对象接受,该接口是一个活体检测完成返回活体认证结果的回调接口。
DetectCallback. onDetectFinish
函数名 | onPreFinish | |
void onDetectFinish(String token,int errorCode,String errorMessage,String data) | ||
名称 | 完成活体检测之后的回调结果 | |
类型说明 | 函数 | |
说明 |
|
|
变量名 | 说明 | 类型 |
token | 业务流水号,用户调用预处理传入的token | String |
errorCode | 预处理结果码,具体错误码参考文档ErrorCode说明 | int |
errorMessage | 预处理结果信息,具体错误信息参考文档ErrorCode说明 | String |
data | 客户端完成验证后的加密数据。注:需用该data调用服务端接口进行数据验证 | String |
完成活体检测之后的回调结果通过该函数返回,data为后续用于获取比对结果的加密数据。
若用户getBizeToken接口传入参数get_liveness_video为1,即选择返回活体阶段的视频/图片,开始活体检测的函数选择startDetectForLivenessFile。
startDetectForLivenessFile
函数名 | startDetectForLivenessFile | |
void startDetectForLivenessFile(DetectCallbackWithFile callback) | ||
名称 | 开始活体认证 | |
类型说明 | 函数 | |
说明 | 在预处理接口onPreFinish成功回调且errorCode==1000的时候才能开启 | |
变量名 | 说明 | 类型 |
callback | DetectCallbackWithFile的类对象,接受活体结果的接口,详见回调函数DetectCallbackWithFile说明 | DetectCallbackWithFile |
活体检测的结果由DetectCallbackWithFile的类对象接受,该接口是一个活体检测完成返回活体认证结果的回调接口。
DetectCallbackWithFile. onDetectFinish
函数名 | onPreFinish | |
void onDetectFinish(String token, int errorCode, String errorMessage, String data, String livenessFilePath); | ||
名称 | 完成活体检测之后的回调结果 | |
类型说明 | 函数 | |
说明 |
|
|
变量名 | 说明 | 类型 |
token | 业务流水号,用户调用预处理传入的token | String |
errorCode | 预处理结果码,具体错误码参考文档ErrorCode说明 | int |
errorMessage | 预处理结果信息,具体错误信息参考文档ErrorCode说明 | String |
data | 客户端完成验证后的加密数据。注:需用该data调用服务端接口进行数据验证 | String |
livenessFilePath | 若getBizeToken接口传入参数get_liveness_video为1,则返回活体加密文件路径,verify成功后拿到解密key后调用getLivenessFiles接口获取解密后的文件 | String |
完成活体检测之后的回调结果通过该函数返回,data为后续用于获取比对结果的加密数据。同时返回活体加密文件路径livenessFilePath,再加上verify成功后拿到解密key,可调用getLivenessFiles接口获取解密后的文件。
getLivenessFiles
函数名 | startDetectForLivenessFile | |
LivenessFileResult getLivenessFiles(String filePath, String decryptionKey) | ||
名称 | 获取解密活体文件 | |
类型说明 | 函数 | |
说明 |
|
|
返回值 | LivenessFileResult | |
变量名 | 说明 | 类型 |
filePath | 端上活体成功后sdk返回的活体加密文件路径 | String |
decryptionKey | 调用verify后拿到的解密key | String |
类LivenessFileResult
参数类型 | 参数名 | 说明 |
int | resultCode |
结果码:
1000表示获取成功 2000表示传入的video_key不正确 2100表示传入的path不正确 3000表示参考数据调用出错 |
String | livenessType |
活体类型
(动作:meglive静默:still 炫彩:flash) |
LivenessFile[] | livenessFiles | 活体文件对象 |
类LivenessFile
参数类型 | 参数名 | 说明 |
---|---|---|
String | path | 文件路径 |
String | fileType | 文件类型 |
String | actionType | 动作类型(只有动作活体有值,其他为空。 眨眼:blink 张嘴:open_mouth 左右摇头:shake 上下点头:nod) |