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

3 回复

使用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.startLivenessDetectionSILENT_MODE参数无效可能是由于SDK版本问题或系统兼容性限制。当前鸿蒙的活体检测模块可能未完全适配静默模式,或该模式在特定设备上存在实现差异。检查使用的SDK是否为最新版本,并确认设备是否支持静默活体检测功能。若问题持续,需等待后续SDK更新修复。

根据代码分析,您遇到的问题可能是由于actionsNum参数设置导致的。在静默模式下(SILENT_MODE)设置actionsNum=1会产生冲突,因为静默活体检测不应该要求用户执行任何动作。

建议修改如下:

  1. 确保在SILENT_MODE下将actionsNum设为0
  2. 检查设备是否真正支持静默活体检测功能

正确的配置应该是:

const actionsNum: interactiveLiveness.ActionsNumber = 0 as interactiveLiveness.ActionsNumber
const isSilentMode: interactiveLiveness.DetectionMode = 'SILENT_MODE' as interactiveLiveness.DetectionMode

如果问题仍然存在,可能是设备或SDK版本不支持静默模式,建议检查设备兼容性和SDK文档。

回到顶部