tencent cloud

人脸核身

Android 自定义能力

PDF
聚焦模式
字号
最后更新时间: 2026-03-27 11:20:21

自定义提示与增加语言

自定义提示

如果您需要修改提示语,或者新增其他的语言文件的话,可以按照下面的方式去实现。卡证活体人脸比对 SDK 会提供一个翻译文件 custom_strings.xml,里面包括了所有卡证活体人脸比对 SDK 对外可以进行修改的配置文字文件。

1. 打开在主 module(集成 SDK 的 module)工程。
2. custom_strings.xml 添加到对应的语言文件夹下。
3. 修改其中需要自定义的文字内容即可。
4. 打包以后,您修改的内容会自动覆盖原有的内容。
└── src
└── main
├── AndroidManifest.xml
├── assets
├── java
└── res
├── values-zh-rCN
│ └── custom_strings.xml
└── values-zh-rHK
└── custom_strings.xml

新增语言

新增语言文件时,执行以下三步即可实现:
1. 在主 module(集成卡证活体人脸比对 SDK 的 module)工程里新增对应语言文件夹。
2. custom_strings.xml 拷贝到该语言文件夹下,并修改对应的 value 内容。
└── src
└── main
├── AndroidManifest.xml
├── assets
├── java
└── res
├── values-th-rTH
│ └── custom_strings.xml <<<<<<<<<<< 以泰文为例,values-th-rTH
├── values-zh-rCN
│ └── custom_strings.xml
└── values-zh-rHK
└── custom_strings.xml
3. 在代码里指定对应的语言码即可(以泰文为例)。
EkycHyConfig ekycHyConfig = new EkycHyConfig();
ekycHyConfig.setLanguageStyle(LanguageStyle.CUSTOMIZE_LANGUAGE);
ekycHyConfig.setLanguageCode("th-TH");


附录 Android 语言码

本文提供以下 Android 的部分语言码,以供参考。
语言码
对应使用的国家或地区
af-ZA
公用荷兰语 - 南非
sq-AL
阿尔巴尼亚 - 阿尔巴尼亚
ar-DZ
阿拉伯语 - 阿尔及利亚
ar-BH
阿拉伯语 - 巴林
ar-EG
阿拉伯语 - 埃及
ar-IQ
阿拉伯语 - 伊拉克
ar-JO
阿拉伯语 - 约旦
ar-KW
阿拉伯语 - 科威特
ar-LB
阿拉伯语 - 黎巴嫩
ar-LY
阿拉伯语 - 利比亚
ar-MA
阿拉伯语 - 摩洛哥
ar-OM
阿拉伯语 - 阿曼
ar-QA
阿拉伯语 - 卡塔尔
eu-ES
巴斯克 - 巴斯克
be-BY
Belarusian - 白俄罗斯
bg-BG
保加利亚 - 保加利亚
ca-ES
嘉泰罗尼亚 - 嘉泰罗尼亚
zh-HK
华语 - 中国香港
zh-MO
华语 - 中国澳门
zh-CN
华语 - 中国
zh-SG
华语 - 新加坡
zh-TW
华语 - 中国台湾
zh-CHS
华语 (简体化)
zh-CHT
华语 (传统的)
hr-HR
克罗埃西亚 - 克罗埃西亚
cs-CZ
捷克 - 捷克
da-DK
丹麦文 - 丹麦
div-MV
Dhivehi - 马尔代夫
nl-BE
荷兰 - 比利时
nl-NL
荷兰 - 荷兰
en-AU
英语 - 澳大利亚
en-CA
英语 - 加拿大
en-ZA
英语 - 南非
en-PH
英语 - 菲律宾
en-NZ
英语 - 新西兰
en-GB
英语 - 英国
en-US
英语 - 美国
fa-IR
波斯语 - 伊朗王国
fi-FI
芬兰语 - 芬兰
fr-FR
法国 - 法国
fr-BE
法国 - 比利时
fr-MC
法国 - 摩纳哥
fr-CH
法国 - 瑞士
gl-ES
加利西亚 - 加利西亚
ka-GE
格鲁吉亚州 - 格鲁吉亚州
de-DE
德国 - 德国
de-LU
德国 - 卢森堡
de-CH
德国 - 瑞士
el-GR
希腊 - 希腊
gu-IN
Gujarati - 印度
he-IL
希伯来 - 以色列
hi-IN
北印度语 - 印度
hu-HU
匈牙利 - 匈牙利
is-IS
冰岛 - 冰岛
it-IT
意大利 - 意大利
ja-JP
日本 - 日本
kk-KZ
Kazakh - 哈萨克
kn-IN
卡纳达语 - 印度
ko-KR
韩国 - 韩国
lv-LV
拉脱维亚 - 拉脱维亚
lt-LT
立陶宛 - 立陶宛
ms-BN
马来 - 汶莱
ms-MY
马来 - 马来西亚
mr-IN
马拉地语 - 印度
mn-MN
蒙古 - 蒙古
nn-NO
挪威 (Nynorsk)- 挪威
pl-PL
波兰 - 波兰
pt-BR
葡萄牙 - 巴西
pt-PT
葡萄牙 - 葡萄牙
ro-RO
罗马尼亚语 - 罗马尼亚
sa-IN
梵文 - 印度
ru-RU
俄国 - 俄国
sk-SK
斯洛伐克 - 斯洛伐克
es-AR
西班牙 - 阿根廷
es-ES
西班牙 - 西班牙
sv-SE
瑞典 - 瑞典
th-TH
泰国 - 泰国
tr-TR
土耳其语 - 土耳其
uk-UA
乌克兰 - 乌克兰
ur-PK
Urdu - 巴基斯坦
vi-VN
越南 - 越南

自定义布局

eKYC SDK 支持自定义 OCR 识别界面和活体人脸比对页面的布局。通过在 EkycHyConfig 中分别配置 OcrUiConfigFaceAuthUiConfig,可以实现完整的 UI 定制。

SDK 在 resources/custom_layout/ 目录下提供了两个默认布局文件作为参考模板:
ocr_detect_fragment.xml:OCR 识别界面默认布局。
huiyan_fragment_authing.xml:活体人脸比对页面默认布局。

建议以这两个文件为基础进行修改,以确保必要的 View 组件和 ID 保持一致。


OCR 界面自定义布局

OCR 识别界面的自定义布局通过 OcrUiConfig.setPortraitLayoutResId() 实现,传入自定义布局的 Resource ID:
EkycHyConfig ekycHyConfig = new EkycHyConfig();

OcrUiConfig ocrUiConfig = new OcrUiConfig();
ocrUiConfig.setPortraitLayoutResId(R.layout.custom_ocr_layout);

ekycHyConfig.setOcrUiConfig(ocrUiConfig);
注意:
自定义布局中必须保留 OCR SDK 所需的必要 View 组件,请勿修改这些 View 的类型或 android:id。建议以 ocr_detect_fragment.xml 为模板进行修改。


活体人脸比对界面自定义布局

活体人脸比对页面的自定义布局通过 FaceAuthUiConfig.setAuthLayoutResId() 实现,传入自定义布局的 Resource ID:
EkycHyConfig ekycHyConfig = new EkycHyConfig();

FaceAuthUiConfig faceAuthUiConfig = new FaceAuthUiConfig();
faceAuthUiConfig.setAuthLayoutResId(R.layout.custom_face_auth_layout);
faceAuthUiConfig.setMainActivityThemeId(R.style.CustomFaceAuthTheme);

ekycHyConfig.setFaceAuthUiConfig(faceAuthUiConfig);
注意:
自定义活体人脸比对布局时,所有 View 的类型和 android:id 必须与活体人脸比对 SDK 要求的一致,这些 View 会参与界面事件绑定。建议以 huiyan_fragment_authing.xml 为模板进行修改。


自定义布局的事件绑定

当自定义布局时,可以通过 setAuthEventCallBack() 方法为新增的 UI 控件进行事件绑定。在活体人脸检测主界面被创建时,会回调 HuiYanAuthEventCallBack.onMainViewCreate(View) 方法,此时可以获取自定义布局中的控件并注册事件监听:
EkycHySdk.setAuthEventCallBack(new HuiYanAuthEventCallBack() {
@Override
public void onMainViewCreate(View authView) {
if (authView == null) {
return;
}
// 获取自定义布局中的控件
Button customButton = authView.findViewById(R.id.custom_button_id);
if (customButton != null) {
customButton.setOnClickListener(v -> {
// 处理自定义按钮点击事件
Log.d(TAG, "Custom button clicked");
});
}
}

@Overridever
public void onMainViewDestroy() {
// 界面销毁时的清理工作
Log.d(TAG, "Auth view destroyed");
}
});

同样地,对于 OCR 识别界面的自定义布局,可以通过 setOcrEventCallBack() 方法为新增的 UI 控件进行事件绑定:
EkycHySdk.setOcrEventCallBack(new OcrEventListener() {
@Override
public void onMainViewCreate(View ocrView) {
if (ocrView == null) {
return;
}
// 获取自定义 OCR 布局中的控件
Button customOcrButton = ocrView.findViewById(R.id.custom_ocr_button_id);
if (customOcrButton != null) {
customOcrButton.setOnClickListener(v -> {
// 处理自定义按钮点击事件
Log.d(TAG, "Custom OCR button clicked");
});
}
}

@Override
public void onMainViewDestroy() {
// 界面销毁时的清理工作
Log.d(TAG, "OCR view destroyed");
}
});


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈