HarmonyOS 鸿蒙Next如何判断指纹变更
HarmonyOS 鸿蒙Next如何判断指纹变更
当用户的指纹信息发生变更时(增加或删除),需告知用户并主动关闭指纹登录。
请问鸿蒙这块如何判断用户指纹库的变化?
请问鸿蒙这块如何判断用户指纹库的变化?
2 回复
可以参考指纹认证demo: 可以先录一个指纹,查询用户注册凭据变化,看具体返回值 再录一个指纹,再查询,可以看到返回的credentialDigest和credentialCount是有变化 返回结果是{“credentialDigest”:51901,“credentialCount”:2}的样式 一般应用场景是:业务开通时,从认证成功结果中获取用户凭据的状态,或者直接查询用户凭据的状态,将注册的凭据状态存储起来。当调用者需要感知用户凭据变化时,需要从当前认证成功结果获取凭据的状态,或者查询当前凭据的状态,通过对比差异感知凭据状态的变化。
import { promptAction } from '[@kit](/user/kit).ArkUI';
import userIAM_userAuth from '[@ohos](/user/ohos).userIAM.userAuth';
const TAG = 'User_Auth'
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
[@State](/user/State) userAuthResult?: userIAM_userAuth.UserAuthResult = undefined
build() {
Column() {
Button('查询是否支持指纹和ATL1认证').margin({ bottom: 20 }).onClick(() => {
this.checkAvailableStatus(userIAM_userAuth.UserAuthType.FINGERPRINT, userIAM_userAuth.AuthTrustLevel.ATL1)
})
Button('查询用户注册凭据变化').margin({ bottom: 20 }).onClick(() => {
let enrolledState = userIAM_userAuth.getEnrolledState(userIAM_userAuth.UserAuthType.FINGERPRINT);
console.info('get current enrolled state success, enrolledState = ' + JSON.stringify(enrolledState));
})
Button('拉起指纹认证').margin({ bottom: 20 }).onClick(() => {
const authParam: userIAM_userAuth.AuthParam = {
challenge: new Uint8Array([49, 49, 49, 49, 49, 49]),
authType: [userIAM_userAuth.UserAuthType.FINGERPRINT],
authTrustLevel: userIAM_userAuth.AuthTrustLevel.ATL1
}
const widgetParam: userIAM_userAuth.WidgetParam = { title: '请认证指纹' };
this.startUserAuth(authParam, widgetParam)
})
}
}
checkAvailableStatus(authType: number, trustLevel: number) {
try {
userIAM_userAuth.getAvailableStatus(authType, trustLevel);
promptAction.showToast({ message: '支持' })
} catch (e) {
promptAction.showToast({ message: '不支持' })
}
}
startUserAuth(authParam: userIAM_userAuth.AuthParam, widgetParam: userIAM_userAuth.WidgetParam) {
try {
const userAuthInstance = userIAM_userAuth.getUserAuthInstance(authParam, widgetParam);
userAuthInstance.on('result', {
onResult: (result) => { //认证成功
if (result.result === userIAM_userAuth.UserAuthResultCode.SUCCESS) {
this.userAuthResult = result;
console.log(TAG, 'userAuthInstance callback result ' + JSON.stringify(result));
userAuthInstance.off('result');
}
}
})
userAuthInstance.start();
console.log('auth start success');
} catch (e) {
promptAction.showToast({ message: `拉起用户认证失败 ${e.code} ${e.message}` })
}
}
}
针对HarmonyOS鸿蒙Next如何判断指纹变更的问题,以下是一些专业解答:
在HarmonyOS鸿蒙Next系统中,指纹信息的管理通常涉及录入、验证和删除等操作。若需判断指纹是否发生变更,可通过以下方式实现:
- 直接验证:尝试使用已录入的指纹进行验证。若验证失败,且确认操作无误,则可能是指纹信息已发生变更。
- 系统设置检查:进入系统设置中的“生物识别和密码”功能,查看指纹列表。若列表中显示的指纹与记忆中不符,则表明指纹已发生变更。
- 接口查询:对于开发者而言,可通过HarmonyOS提供的API接口查询设备支持的认证能力,并判断指纹信息是否存在或已变更。具体可参考HarmonyOS官方文档中的UserAuthInstance及相关接口。
请注意,以上方法均基于当前系统功能和接口设计,若系统更新或接口调整,可能导致方法失效。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html