答案 0 :(得分:4)
Android有一种称为KeyGuard的东西。 Keyguard基本上是指处理手机解锁的代码。它最初是为带有键盘的手机开发的。
Tez,Paytm等使用Android提供的Keyguard API来保护应用。
您可以按照以下步骤实现此目的:
Android提供KeyguardManager来实施身份验证。
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
创建请求身份验证的意图。
Intent screenLockIntent = keyguardManager.createConfirmDeviceCredentialIntent(title, description);
这里,标题和描述用于在验证时向用户显示信息。此方法需要API级别21。
您可以调用startActivityForResult,无论身份验证是否成功,都会返回结果。
startActivityForResult(screenLockIntent, LOCK_REQUEST_CODE);
如果未设置锁定屏幕,则会引发异常。你必须手动处理这种情况。
检查onActivityResult
中的结果@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(LOCK_REQUEST_CODE == requestCode){
if (resultCode == RESULT_OK) {
//Authentication is successful
} else {
//Authentication failed
}
}
}