请求解锁图案 - Android

6

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

例如,在iOS中,我基于QR代码生成一个OTP。在显示生成的OTP令牌之前,我可以要求用户输入解锁密码。我希望我的Android应用程序也能做到这一点。这可以防止应用程序被滥用。


你找到了回溯解决方案吗? - Beloo
@Beloo:不,我没有找到任何适用于Lollipop以下API的内容。 - Prerak Sola
1个回答

7
您可以使用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();
    }
  }
}

谢谢,我会看一下这个。我也在寻找一个兼容API 16级别的解决方案。 - Prerak Sola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接