HarmonyOS 如何拉起系统设置录入指纹,人脸识别等数据?

如题:HarmonyOS 如何拉起系统设置录入指纹,人脸识别等数据?

阅读 583
1 个回答

目前是不支持这个能力的,指纹以及人脸识别都是在已经有凭证录入的情况下。

以下为已有凭证后拉起识别认证的代码示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { userAuth } from '@kit.UserAuthenticationKit';

@Entry
@Component
struct UserAuth {
  @State message: string = '点击开始';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            userAuthorization()
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

function userAuthorization() {
  // 设置认证参数
  const authParam: userAuth.AuthParam = {
    challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
    authType: [userAuth.UserAuthType.FACE],
    authTrustLevel: userAuth.AuthTrustLevel.ATL3,
  };
  // 配置认证界面需设置navigationButtonText
  const widgetParam: userAuth.WidgetParam = {
    title: '请验证身份',
    navigationButtonText: '使用密码',
  };
  try {
    // 获取认证对象
    let userAuthInstance = userAuth.getUserAuthInstance(authParam, widgetParam);
    console.log('get userAuth instance success');
    // 订阅认证结果
    userAuthInstance.on('result', {
      onResult(result) {
        // 若收到ResultCode值为12500000,代表操作成功
        console.log('userAuthInstance callback result = ' + JSON.stringify(result));
        // 若收到ResultCode值为12500011,说明用户点击了导航按钮想切换自定义认证方式
        if (result.result == 12500011) {
          //请开发者自行完成拉起自定义认证界面的实现
        }
      }
    });
    console.log('auth on success');
    userAuthInstance.start();
    console.log('auth start success');
  } catch (error) {
    const err: BusinessError = error as BusinessError;
    console.error(`auth catch error. Code is ${err?.code}, message is ${err?.message}`);
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进