我使用 KeyPermanentlyInvalidatedException 来检测是否添加了新指纹。但它不会抛出 KeyPermanentlyInvalidatedException。
我试过这些步骤:
我也从 stackoverflow找到了这个链接,但它没有帮助我。
从文件:
一旦安全锁屏被禁用(重新配置为无、滑动或其他不对用户进行身份验证的模式)或当安全锁屏被强制重置(例如,由设备管理员)时,密钥将不可逆转地失效。此外,如果密钥要求每次使用密钥都进行用户身份验证,则一旦注册新指纹或不再注册指纹,它也将不可逆转地失效,除非使用 setInvalidatedByBiometricEnrollment(boolean) 来允许注册后的有效性。尝试使用此类密钥初始化加密操作将引发 KeyPermanentlyInvalidatedException。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_authenticate);
mButtonTest = findViewById(R.id.button_test);
mButtonTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonTestOnClick();
}
});
boolean isFirstTime = PreferenceManager.getInstances().getFirstTime();
PreferenceManager.getInstances().setFirstTime(false);
if (isFirstTime) {
createKeyPair();
}
}
private void buttonTestOnClick() {
boolean result = initSignature();
Log.e("iii", "Create signature result: " + result);
boolean isFirstTime = PreferenceManager.getInstances().getFirstTime();
if (result) {
if (isFirstTime) { …Run Code Online (Sandbox Code Playgroud)