HarmonyOS 鸿蒙Next中interactiveLiveness.startLivenessDetection调用活体检测,设置SILENT_MODE无效
HarmonyOS 鸿蒙Next中interactiveLiveness.startLivenessDetection调用活体检测,设置SILENT_MODE无效
const actionsNum: interactiveLiveness.ActionsNumber = 1 as interactiveLiveness.ActionsNumber;
//检测模式:SILENT_MODE-静默活体 或者 INTERACTIVE_MODE-动作活体
const isSilentMode: interactiveLiveness.DetectionMode = 'SILENT_MODE' as interactiveLiveness.DetectionMode;
//检测完成的跳转模式:back-router.back返回到上一页 replace-router.replaceUrl跳转
const routeMode: interactiveLiveness.RouteRedirectionMode = 'back' as interactiveLiveness.RouteRedirectionMode;
//默认的配置
const defaultOptions: interactiveLiveness.InteractiveLivenessConfig = {
actionsNum: actionsNum,
isSilentMode: isSilentMode,
routeMode: routeMode
}
export class QuickLiveness {
/**
* options需要的配置信息,不设置使用默认
*
*/
static startLivenessDetection(options: interactiveLiveness.InteractiveLivenessConfig = defaultOptions): Promise<QuickLivenessResult> {
return new Promise ((result) => {
requestCameralPermission().then(() => {
interactiveLiveness.startLivenessDetection(options, (err: BusinessError, recogResult: interactiveLiveness.InteractiveLivenessResult | undefined) => {
if(err.code === 0 && recogResult) {
let res = new QuickLivenessResult()
res.compType = RecogCompletionType.CompTypeSuceess
res.livenessType = recogResult.livenessType as number
res.mPixelMap = recogResult.mPixelMap
res.securedImageBuffer = recogResult.securedImageBuffer
res.certificate = recogResult.certificate
result(res)
}else{
let res = new QuickLivenessResult()
res.compType = RecogCompletionType.CompTypeFailed
res.message = err.message
result(res)
}
})
}).catch(() => {
let res = new QuickLivenessResult()
res.compType = RecogCompletionType.CompTypePermissionFail
res.message = '相机授权失败'
result(res)
})
})
}
}
设置了isSilentMode="SILENT_MODE"静默活体模式, 但是却还是需要验证三个动作
更多关于HarmonyOS 鸿蒙Next中interactiveLiveness.startLivenessDetection调用活体检测,设置SILENT_MODE无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用interactiveLiveness.startLivenessDetection时,若设置SILENT_MODE无效,
主要原因是当前版本(5.0.0(12)及以上)尚未支持静默活体检测模式 。
根据官方文档说明,SILENT_MODE在API设计中已定义但实际未实现,需切换为INTERACTIVE_MODE(动作活体检测模式)才能正常运行
更多关于HarmonyOS 鸿蒙Next中interactiveLiveness.startLivenessDetection调用活体检测,设置SILENT_MODE无效的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,interactiveLiveness.startLivenessDetection
的SILENT_MODE
参数无效可能是由于SDK版本问题或系统兼容性限制。当前鸿蒙的活体检测模块可能未完全适配静默模式,或该模式在特定设备上存在实现差异。检查使用的SDK是否为最新版本,并确认设备是否支持静默活体检测功能。若问题持续,需等待后续SDK更新修复。
根据代码分析,您遇到的问题可能是由于actionsNum
参数设置导致的。在静默模式下(SILENT_MODE
)设置actionsNum=1
会产生冲突,因为静默活体检测不应该要求用户执行任何动作。
建议修改如下:
- 确保在
SILENT_MODE
下将actionsNum
设为0 - 检查设备是否真正支持静默活体检测功能
正确的配置应该是:
const actionsNum: interactiveLiveness.ActionsNumber = 0 as interactiveLiveness.ActionsNumber
const isSilentMode: interactiveLiveness.DetectionMode = 'SILENT_MODE' as interactiveLiveness.DetectionMode
如果问题仍然存在,可能是设备或SDK版本不支持静默模式,建议检查设备兼容性和SDK文档。