要求解锁图案-Android

Pre*_*ola 6 android unlock android-security

有没有一种方法,我可以要求用户使用设置的模式(密码,指纹等)在手机上执行解锁操作,以访问我的应用程序的某些功能?

例如,在iOS中,我基于QR码生成OTP。在向用户显示生成的OTP令牌之前,我可以要求用户提供解锁密码。我要为我的android应用程序设置相同的功能。这样可以防止滥用该应用程序。

Pab*_*noz 5

您可以KeyguardManager使用从API 21开始提供的createConfirmDeviceCredentialIntent方法与该类一起创建该意图,应使用该方法从您的活动中调用该意图startActivityForResult(intent)

在您的活动中:

private static final int CREDENTIALS_RESULT = 4342; //just make sure it's unique within your activity.

void checkCredentials() {
  KeyguardManager keyguardManager = this.getSystemService(Context.KEYGUARD_SERVICE);
  Intent credentialsIntent = keyguardManager.createConfirmDeviceCredentialIntent("Password required", "please enter your pattern to receive your token");
  if (credentialsIntent != null) {
    startActivityForResult(credentialsIntent, CREDENTIALS_RESULT);
  } else {
    //no password needed
    doYourThing();
  }
}

@Override
public void onActivityResult(int requestCode, int resultCode, Bundle data) {
  if (requestCode == CREDENTIALS_RESULT) {
    if(resultCode == RESULT_OK) {
      //hoorray!
      doYourThing();
    } else {
      //uh-oh
      showSomeError();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)