SDK-接入文档(android版)
此文档只适用于FaceID MegLiveStill SDK 2.0.0及以上版本,SDK 1.3版本及以下版本请参考对应历史文档。
接口说明
入口类MegLiveManager
MegLiveManager类是管理活体认证的类,此类不可以初始化,只能通过getInstance获得其单例。
接口
MegLiveManager.getInstance
函数名 | MegLiveManager getInstance() |
---|---|
名称 | 获取MegLiveManager的实例 |
类型说明 | 函数 |
说明 | 获取MegLiveManager的单例 |
- 返回值说明
返回值 | 说明 |
---|---|
MegLiveManager | MegLiveManager的单实例对象 |
MegLiveManager.getVersion
函数名 | String getVersion() |
---|---|
名称 | 获取SDK的版本号 |
类型说明 | 函数 |
- 返回值说明
返回值 | 说明 |
---|---|
String | 一个字符串,表示当前SDK的版本号。如:MegLiveStill 2.0.0 |
MegLiveManager.getBuildInfo
函数名 | String getBuildInfo() |
---|---|
名称 | 获取SDK的构建信息 |
类型说明 | 函数 |
- 返回值说明
返回值 | 说明 |
---|---|
String | 一个字符串,表示当前SDK的SDK的构建信息。 |
MegLiveManager.setManifestPackage
函数名 | void setManifestPackage(String package) |
---|---|
名称 | 设置资源编译的包名,工程中AndroidManifest.xml的package属性的值 |
类型说明 | 函数 |
说明 | 此函数非必需调用,默认获取资源package为本包包名,如build.gradle的applicationId与AndroidManifest.xml中不一致的情况,必须在preDetect之前调用,并将AndroidManifest.xml的package传入。 |
返回值说明
无返回值
重点说明
若build.gradle的applicationId与AndroidManifest.xml的package不一致,必须在startDetect接口之前调用此接口,并传AndroidManifest.xml的package。 如下图示: 当不一致时,改接口必须被调用且必须在startDetect之前调用。图中情况传入的package为 com.megvii.test。即 setManifestPackage(“com.megvii.test”);
MegLiveManager.preDetect
函数名 | void preDetect(Context context, String token,String language,String host PreCallback callback) |
---|---|
名称 | 活体检测预处理接口,结果会以callback返回。失败则无法进行以后所有工作。 |
类型说明 | 函数 |
说明 | 监听者会在活体验证结束后被调用,如果没有设置,则不会调用。 |
- 参数说明
参数 | 说明 | 类型 |
---|---|---|
context | Android上下文 | Context |
token | 业务流水号,每次验证前,通过服务端API获取的业务流水号(bizToken) | String |
language | 语种 参照ISO 639标准 使用系统默认传null | String |
host | 网络请求host。 host取值见附录E 【host取值列表】,请根据具体情况选择host取值。 | String |
callback | PreCallback的类对象,接收预处理结果,详见回调函数PreCallback说明 | PreCallback |
setVerticalDetectionType
函数名 | void setVerticalDetectionType(@Vertical int verticalDetection) |
---|---|
名称 | 垂直检测设置 |
类型说明 | 函数 |
说明 | MegLiveManager. DETECT_VERITICAL_FRONT 前两秒检测 MegLiveManager. DETECT_VERITICAL_KEEP 始终检测 MegLiveManager. DETECT_VERITICAL_DISABLE 不检测 |
- 参数说明
参数 | 说明 | 类型 |
---|---|---|
verticalDetection | 垂直检测类型 | int |
接口PreCallback
PreCallback是一个活体检测前预处理的回调接口,开启活体验证之前需要优先调用此接口。
PreCallback. onPreStart
函数名 | void onPreStart() |
---|---|
名称 | 开启预处理 |
类型说明 | 函数 |
说明 | 此处无实际意义,代表预处理开启,此处可用于展示progress bar |
PreCallback. onPreFinish
函数名 | void onPreFinish(String token,int errorCode,String errorMessage) |
---|---|
名称 | 完成预处理之后的回调 |
类型说明 | 函数 |
说明 | 只有当完成预处理且errorCode==1000的时候才可以调用startDetect开启活体检测 |
- 参数说明
参数 | 说明 | 类型 |
---|---|---|
token | 业务流水号,用户调用预处理传入的token | String |
errorCode | 预处理结果码,具体错误码参考文档ErrorCode说明 | int |
errorMessage | 预处理结果信息,具体错误信息参考文档ErrorCode说明 | String |
MegLiveManager. startDetect
函数名 | void startDetect(DetectCallback callback); |
---|---|
名称 | 开始活体认证 |
类型说明 | 函数 |
说明 | 在预处理接口onPreFinish 成功回调且errorCode==1000的时候才能开启 |
- 参数说明
参数 | 说明 | 类型 |
---|---|---|
callback | DetectCallback的类对象,接受活体结果的接口,详见回调函数DetectCallback说明 | DetectCallback |
接口DetectCallback
DetectCallback是一个活体检测完成返回活体认证结果的回调接口。
DetectCallback.onDetectFinish
函数名 | void onDetectFinish(String token,int errorCode,String errorMessage,String data) |
---|---|
名称 | 完成活体检测之后的回调结果 |
类型说明 | 函数 |
- 参数说明
参数 | 说明 | 类型 |
---|---|---|
token | 业务流水号,用户调用预处理传入的token | String |
errorCode | 预处理结果码,具体错误码参考文档ErrorCode说明 | int |
errorMessage | 预处理结果信息,具体错误信息参考文档ErrorCode说明 | String |
data | 客户端完成验证后的加密数据。 注:需用该data调用服务端接口进行数据验证 | String |
集成说明(Android Studio)
将res目录下的资源文件拷贝到项目app的res下,若果不需要多语种适配可以将res下的中英文适配文件夹删除,如果需要适配其他语种则需要建立对应语种目录(图片资源如果需要区分多语种也需要建立对应目录),demo中提供了默认(中文)、英文、中文三种示例
把aar文件复制进入libs文件夹中
在APP的build.gradle中加入
repositories { flatDir{ dirs 'libs' } } lintOptions { checkReleaseBuilds false abortOnError false }
并在dependencies 中加入compile(name:'meglive_still', ext:'aar')
点击Rebuild Project
UI定制
可定制的UI内容:
可定制的内容主要包括:控件颜色、文案内容、文案颜色、文案字号、图片资源、语音资源等。下文将逐个页面说明哪些UI元素可以修改。
1、默认图片资源可以更换,素材名称:liveness_image_center
2、首页提示语文字颜色可替换 文案字体颜色变量名:livenessGuideRemindTextColor
3、首页同意协议文字颜色可更换,变量名:livenessGuideReadColor
4、button颜色可更换,文字颜色可以更换。
button可选状态颜色变量名:livenessDetectButtonSelectedBGColor
button不可选状态颜色变量名:livenessDetectButtonNormalBGColor
button高亮状态颜色变量名:livenessDetectButtonHighlightBGColor
字体颜色变量名:livenessDetectButtonTextColor
5、背景色可以更换,变量名称:livenessHomeBackgroundColor
6、右上角关闭按钮资源可以更换,变量名称:liveness_home_closeicon
7、圆环部分背景色可以替换,变量名称:livenessHomeRingColor
8、进度条颜色可以更换,变量名称:livenessHomeProcessBarColor
9、验证失败后,进度条颜色可以更换,变量名称:livenessHomeValidationFailProcessBarColor
10、圆圈下的字体颜色、字体大小、文案内容可以更换,此字体一直保持居中状态,支持折行; 文案字体颜色变量名:livenessHomePromptColor 文案字体大小变量名:livenessHomePromptSize 文案内容: “请让我看到您的正脸”:livenessHomePromptFrontalFaceText “验证中,请稍候”:livenessHomePromptWaitText “人脸有效面积太小”:livenessHomePromptFaceEreaText “请让光线再亮点”:livenessHomePromptBrighterText “请让光线再暗点”:livenessHomePromptDarkerText “请再靠近一些”:livenessHomePromptCloserText “请离屏幕远一些”:livenessHomePromptFurtherText “请避免侧光或背光”:livenessHomePromptNoBacklightingText “请将正脸置于取景框内”:livenessHomePromptFrontalFaceInBoundingBoxText “请勿遮挡眼睛”: livenessHomePromptNoEyesOcclusionText “请勿遮挡嘴巴”: livenessHomePromptNoMouthOcclusionText “很好,请保持不动”: livenessHomePromptStayStillText
“请向左或向右缓慢转头”: livenessHomePromptShakeHeadText “请缓慢点头”: livenessHomePromptNodText “请张嘴”: livenessHomePromptOpenMouthText “请眨眼”: livenessHomePromptBlinkText
11、动作活体时语音资源可以替换: “请眨眼”:liveness_blink “请张嘴”:liveness_mouth_open “请向左或向右缓慢转头”:liveness_shakehead “请缓慢点头”:liveness_nod “很好”:liveness_well_done
12、在loading过程中,loading效果素材可以更换;素材名称:liveness_home_loadingicon
13、退出弹层标题内容、标题文案字号、颜色可以更换: 字体颜色变量名:livenessExitTitlePromptColor 字体大小变量名:livenessExitTitlePromptSize 文案内容: “确认退出吗”:livenessExitTitlePromptText
14、退出弹层的中的左右两个选项的文案内容、文案字号、颜色可以更换: 左项: 字体颜色变量名:livenessExitLeftPromptColor 字体大小变量名:livenessExitLeftPromptSize 文案内容: “取消”:livenessExitLeftPromptText 右项: 字体颜色变量名:livenessExitRightPromptColor 字体大小变量名:livenessExitRightPromptSize 文案内容: “确定”:livenessExitRightPromptText
15、图中动画内容可以替换: 眨眼动画: liveness_blink_eye_close liveness_blink_eye_open 张嘴动画: liveness_mouth_close liveness_mouth_open 点头动画: liveness_nod_down liveness_nod_up 摇头动画: liveness_shakehead_left liveness_shakehead_right
16、重试弹层标题文案字号、颜色可以更换: 字体颜色变量名:livenessRetryTitlePromptColor 字体大小变量名:livenessRetryTitlePromptSize
17、重试弹层的中的左右两个选项的文案内容、文案字号、颜色可以更换: 左项: 字体颜色变量名: livenessRetryLeftPromptColor
字体大小变量名:livenessRetryLeftPromptSize 文案内容: “重新验证”:livenessRetryLeftPromptText 右项: 字体颜色变量名:livenessRetryRightPromptColor 字体大小变量名:livenessRetryRightPromptSize 文案内容: “结束验证”:livenessRetryRightPromptText
UI定制方法:
- 修改尺寸、颜色、文案内容: 在values文件夹下修改文字内容、尺寸、 颜色等参数。
- 替换图片资源: 替换drawable文件夹下存放图片资源,资源key值需要按照规定格式定义。
- 替换语音资源: 替换raw文件夹下的音频文件。
附录A:ISO 639-1语言列表
语言代码 | 语言 | 语言代码 | 语言 | 语言代码 | 语言 | 语言代码 | 语言 |
---|---|---|---|---|---|---|---|
aa | 阿法尔语 | fr | 法语 | li | 林堡语 | se | 北萨米语 |
ab | 阿布哈兹语 | fy | 弗里西亚语 | ln | 林加拉语 | sg | 桑戈语 |
ae | 阿维斯陀语 | ga | 爱尔兰语 | lo | 老挝语 | sh | 塞尔维亚-克罗地亚语 |
af | 南非语 | gd | 苏格兰盖尔语 | lt | 立陶宛语 | si | 僧加罗语 |
ak | 阿坎语 | gl | 加利西亚语 | lu | 卢巴语 | sk | 斯洛伐克语 |
am | 阿姆哈拉语 | gn | 瓜拉尼语 | lv | 拉脱维亚语 | sl | 斯洛文尼亚语 |
an | 阿拉贡语 | gu | 古吉拉特语 | mg | 马达加斯加语 | sm | 萨摩亚语 |
ar | 阿拉伯语 | gv | 马恩岛语 | mh | 马绍尔语 | sn | 绍纳语 |
as | 阿萨姆语 | ha | 豪萨语 | mi | 毛利语 | so | 索马里语 |
av | 阿瓦尔语 | he | 希伯来语 | mk | 马其顿语 | sq | 阿尔巴尼亚语 |
ay | 艾马拉语 | hi | 印地语 | ml | 马拉亚拉姆语 | sr | 塞尔维亚语 |
az | 阿塞拜疆语 | ho | 希里莫图语 | mn | 蒙古语 | ss | 斯瓦特语 |
ba | 巴什基尔语 | hr | 克罗地亚语 | mo | 摩尔达维亚语 | st | 南索托语 |
be | 白俄罗斯语 | ht | 海地克里奥尔语 | mr | 马拉提语 | su | 巽他语 |
bg | 保加利亚语 | hu | 匈牙利语 | ms | 马来语 | sv | 瑞典语 |
bh | 比哈尔语 | hy | 亚美尼亚语 | mt | 马耳他语 | sw | 斯瓦希里语 |
bi | 比斯拉马语 | hz | 赫雷罗语 | my | 缅甸语 | ta | 泰米尔语 |
bm | 班巴拉语 | ia | 国际语A | na | 瑙鲁语 | te | 泰卢固语 |
bn | 孟加拉国语 | in | 印尼语 | nb | 书面挪威语 | tg | 塔吉克斯坦语 |
bo | 藏语 | ie | 国际语E | nd | 北恩德贝勒语 | th | 泰语 |
br | 布列塔尼语 | ig | 伊博语 | ne | 尼泊尔语 | ti | 提格里尼亚语 |
bs | 波斯尼亚语 | ii | 四川彝语(诺苏语) | ng | 恩敦加语 | tk | 土库曼语 |
ca | 加泰隆语 | ik | 依努庇克语 | nl | 荷兰语 | tl | 他加禄语 |
ce | 车臣语 | io | 伊多语 | nn | 新挪威语 | tn | 塞茨瓦纳语 |
ch | 查莫罗语 | is | 冰岛语 | no | 挪威语 | to | 汤加语 |
co | 科西嘉语 | it | 意大利语 | nr | 南恩德贝勒语 | tr | 土耳其语 |
cr | 克里语 | iu | 因纽特语 | nv | 纳瓦霍语 | ts | 宗加语 |
cs | 捷克语 | ja | 日语 | ny | 尼扬贾语 | tt | 塔塔尔语 |
cu | 古教会斯拉夫语 | jv | 爪哇语 | oc | 奥克语 | tw | 特威语 |
cv | 楚瓦什语 | ka | 格鲁吉亚语 | oj | 奥吉布瓦语 | ty | 塔希提语 |
cy | 威尔士语 | kg | 刚果语 | om | 奥洛莫语 | ug | 维吾尔语 |
da | 丹麦语 | ki | 基库尤语 | or | 奥利亚语 | uk | 乌克兰语 |
de | 德语 | kj | 宽亚玛语 | os | 奥塞梯语 | ur | 乌尔都语 |
dv | 迪维希语 | kk | 哈萨克语 | pa | 旁遮普语 | uz | 乌兹别克语 |
dz | 不丹语 | kl | 格陵兰语 | pi | 巴利语 | ve | 文达语 |
ee | 埃维语 | km | 高棉语 | pl | 波兰语 | vi | 越南语 |
el | 现代希腊语 | kn | 卡纳达语 | ps | 普什图语 | vo | 沃拉普克语 |
en | 英语 | ko | 朝鲜语、韩语 | pt | 葡萄牙语 | wa | 沃伦语 |
eo | 世界语 | kr | 卡努里语 | qu | 凯楚亚语 | wo | 沃洛夫语 |
es | 西班牙语 | ks | 克什米尔语 | rm | 罗曼什语 | xh | 科萨语 |
et | 爱沙尼亚语 | ku | 库尔德语 | rn | 基隆迪语 | yi | 依地语 |
eu | 巴斯克语 | kv | 科米语 | ro | 罗马尼亚语 | yo | 约鲁巴语 |
fa | 波斯语 | kw | 康沃尔语 | ru | 俄语 | za | 壮语 |
ff | 富拉语 | ky | 吉尔吉斯语 | rw | 卢旺达语 | zh | 中文、汉语 |
fi | 芬兰语 | la | 拉丁语 | sa | 梵语 | zu | 祖鲁语 |
fj | 斐济语 | lb | 卢森堡语 | sc | 萨丁尼亚语 | ||
fo | 法罗语 | lg | 卢干达语 |
附录B:语音资源列表
Key | 释义 |
---|---|
liveness_blink | “请眨眼” |
liveness_mouth_open | “请张嘴” |
liveness_shakehead | “请向左或向右缓慢转头” |
liveness_nod | “请缓慢点头” |
liveness_well_done | “很好” |
附录C:图片资源列表
Key | 释义 |
---|---|
liveness_home_closeicon | 右上角关闭按钮资源 |
liveness_home_loadingicon | 在loading过程中,loading效果素材 |
liveness_blink_eye_close | 眨眼动画中的闭眼图片 |
liveness_blink_eye_open | 眨眼动画中的睁眼图片 |
liveness_mouth_close | 张嘴动画中的闭嘴图片 |
liveness_mouth_open | 张嘴动画中的张嘴图片 |
liveness_nod_down | 点头动画中的低头图片 |
liveness_nod_up | 点头动画中的抬头图片 |
liveness_shakehead_left | 摇头动画中的向左摇头图片 |
liveness_shakehead_right | 摇头动画中的向右摇头图片 |
附录D:文本资源列表
Key | 文案内容 |
---|---|
livenessHomePromptFrontalFaceText | “请让我看到您的正脸” |
livenessHomePromptWaitText | “验证中,请稍候” |
livenessHomePromptFaceEreaText | “人脸有效面积太小” |
livenessHomePromptBrighterText | “请让光线再亮点” |
livenessHomePromptDarkerText | “请让光线再暗点” |
livenessHomePromptCloserText | “请再靠近一些” |
livenessHomePromptFurtherText | “请离屏幕远一些” |
livenessHomePromptNoBacklightingText | “请避免侧光或背光” |
livenessHomePromptFrontalFaceInBoundingBoxText | “请将正脸置于取景框内” |
livenessHomePromptNoEyesOcclusionText | “请勿遮挡眼睛” |
livenessHomePromptNoMouthOcclusionText | “请勿遮挡嘴巴” |
livenessHomePromptStayStillText | “很好,请保持不动” |
livenessHomePromptShakeHeadText | “请向左或向右缓慢转头” |
livenessHomePromptNodText | “请缓慢点头” |
livenessHomePromptOpenMouthText | “请张嘴” |
livenessHomePromptBlinkText | “请眨眼” |
livenessExitTitlePromptText | “确认退出吗” |
livenessExitLeftPromptText | “取消” |
livenessExitRightPromptText | “确定” |
livenessHomePromptTooBrightText | “光线过亮,请到更暗的环境中验证” |
附录E:host取值列表
Host取值 | 含义 |
---|---|
https://api.megvii.com | 中国集群。目前只支持调用中国集群。 |
当前版本
- v2.0.0