Java 使用createConfirmDeviceCredentialIntent()时在反压中获取错误
我正在android应用程序中使用createConfirmDeviceCredentialIntent()进行pin身份验证。如果我在pin认证意图中按下后退按钮,createConfirmDeviceCredentialIntent将关闭,并显示主活动。我想从这个意图,如果有人按下后退按钮,应用程序应该关闭`KeyguardManager KeyguardManager=(KeyguardManager)getSystemService(KEYGUARD_服务)Java 使用createConfirmDeviceCredentialIntent()时在反压中获取错误,java,android,authentication,onbackpressed,android-fingerprint-api,Java,Android,Authentication,Onbackpressed,Android Fingerprint Api,我正在android应用程序中使用createConfirmDeviceCredentialIntent()进行pin身份验证。如果我在pin认证意图中按下后退按钮,createConfirmDeviceCredentialIntent将关闭,并显示主活动。我想从这个意图,如果有人按下后退按钮,应用程序应该关闭`KeyguardManager KeyguardManager=(KeyguardManager)getSystemService(KEYGUARD_服务) 如果您在onActivity
如果您在
onActivityResult
中获得了除RESULT\u OK
之外的其他内容,您就不能finish
完成此请求吗?可以。但问题是,在输入pin的意图中,如果用户按下“后退”按钮,则此意图关闭,并显示主要活动。我不希望用户在没有身份验证的情况下进入应用程序。就像我说的,如果凭据确认的结果不是result\u OK
,你不能在main activity
中覆盖onActivityResult
,然后完成活动吗?不,我不能这样做。因为当身份验证失败时,我必须显示一些错误消息。此时我无法完成应用程序。但您刚才说,如果用户未输入其凭据,您希望关闭应用程序。现在你说你不想让它关闭。是哪一个?如果需要先通知用户,请显示一个对话框,并在对话框关闭后完成活动。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Intent i = keyguardManager.createConfirmDeviceCredentialIntent("unlock", "confirm_pattern");
try {
startActivityForResult(i, LOCK_REQUEST_CODE);
} catch (Exception e) {
Log.d("exception occured", e.toString());
}
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case LOCK_REQUEST_CODE:
if (resultCode == RESULT_OK) {
Intent a = new Intent(MainActivity.this, HomeActivity.class);
startActivity(a);
textView.setText("unlock_success");
} else {
textView.setText("unlock_failed");
}
break;
}
}`