如何在自己的安卓应用中实现系统锁屏?

Sid*_*Sid 1 android lockscreen

我们应该如何在我自己的 android 应用程序上实现系统锁定屏幕,就像在 GooglePay、PayTM、PFA 中使用的图像一样。在此处输入图片说明

esh*_* ms 5

Android 有一种叫做 KeyGuard 的东西。Keyguard基本上是指处理手机解锁的代码。它最初是为带有键盘的手机开发的。

Tez、Paytm 等使用 Android 提供的 Keyguard API 来保护应用程序。

您可以按照以下步骤来实现:

  1. Android 提供KeyguardManager来实现身份验证。

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建请求身份验证的意图。

    Intent screenLockIntent = keyguardManager.createConfirmDeviceCredentialIntent(title, description);
    
    Run Code Online (Sandbox Code Playgroud)

    这里,Title 和 description 用于在认证时向用户显示信息。此方法需要 API 级别 21。

  3. 您可以调用 startActivityForResult ,它会返回一个结果是否认证成功。

    startActivityForResult(screenLockIntent, LOCK_REQUEST_CODE);
    
    Run Code Online (Sandbox Code Playgroud)

    如果未设置锁定屏幕,则会引发异常。您必须手动处理这种情况。

  4. 检查 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
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)