Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用createConfirmDeviceCredentialIntent()时在反压中获取错误_Java_Android_Authentication_Onbackpressed_Android Fingerprint Api - Fatal编程技术网

Java 使用createConfirmDeviceCredentialIntent()时在反压中获取错误

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

我正在android应用程序中使用createConfirmDeviceCredentialIntent()进行pin身份验证。如果我在pin认证意图中按下后退按钮,createConfirmDeviceCredentialIntent将关闭,并显示主活动。我想从这个意图,如果有人按下后退按钮,应用程序应该关闭`KeyguardManager KeyguardManager=(KeyguardManager)getSystemService(KEYGUARD_服务)


如果您在
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;
    }
}`