Android调用密码锁屏校验的流程代码详解

 更新时间:2021年08月04日 08:57:22   作者:夏沫琅琊  
这篇文章主要介绍了Android调用密码锁屏校验的流程代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Android调用密码锁屏校验怎么实现呢?很多朋友到这一步的时候不知如何写代码了,下面小编把我写的核心代码分享出来,有需要的朋友直接拿去修改下即可使用!

1:获取manager

KeyguardManager mKeyguardMgr = null;
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mKeyguardMgr = getSystemService(KeyguardManager.class);
        }

2:创建intent

/**
     * 跳转锁屏密码校验页面
     */
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public void showScreenLockPwd() {
        Intent intent = mKeyguardMgr.createConfirmDeviceCredentialIntent(null, null);
        if (intent != null) {
            startActivityForResult(intent, 1101);
        } else {
            Toast.makeText(this, "intent==null", Toast.LENGTH_LONG).show();
        }
    }

3:监听回调

/**
     * @param requestCode
     * @param resultCode
     * @param data        锁屏密码校验回调
     */
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1101) {
            if (resultCode == RESULT_OK) {
                Toast.makeText(this, "校验成功", Toast.LENGTH_LONG).show();
            } else {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    showScreenLockPwd();
                }
            }
        }
    }

4:兼容性问题
小米11上会出现执行两次onactivityresult的情况。
所以在小米11上面延迟一秒执行跳转

 //跳转密码校验 没pin码时intent==null
        Intent intent = mKeyguardMgr.createConfirmDeviceCredentialIntent(null, null);
        if (intent != null) {
            if (ClientSdkAppEnv.isMiRom()) {
                //小米延迟一秒执行(锁屏验证页面使用android:taskAffinity),
                // 小米11上会出现执行两次onactivityresult的情况
                Scheduler.dispatchUI(() -> startActivityForResult(intent, ACTIVITY_FOR_RESULT), Dates.MILLIS_PER_SECOND);
            } else {
                startActivityForResult(intent, ACTIVITY_FOR_RESULT);
            }
        } else {
          //跳转密码校验 没pin码时intent==null
          Toast.makeText(this, "intent==null", Toast.LENGTH_LONG).show();
        }

到此这篇关于Android调用密码锁屏校验的文章就介绍到这了,更多相关Android密码锁屏校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • android studio编译jar包或者aar包的方法教程详解

    android studio编译jar包或者aar包的方法教程详解

    这篇文章主要介绍了android studio编译jar包或者aar包的方法教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Kotlin基础学习之位运算

    Kotlin基础学习之位运算

    一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,下面这篇文章主要给大家介绍了关于Kotlin基础学习之位运算的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-11-11
  • Android滑动事件冲突的解决方法

    Android滑动事件冲突的解决方法

    这篇文章主要为大家详细介绍了Android滑动事件冲突的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android创建一个Activity的方法分析

    Android创建一个Activity的方法分析

    这篇文章主要介绍了Android创建一个Activity的方法,结合实例形式分析了Android创建Activity的具体步骤与相关实现技巧,需要的朋友可以参考下
    2016-04-04
  • Android编程实现简单的UDP Client实例

    Android编程实现简单的UDP Client实例

    这篇文章主要介绍了Android编程实现简单的UDP Client,结合实例形式分析了Android实现UDP Clinet客户端的实现技巧,需要的朋友可以参考下
    2016-04-04
  • android实现倒计时动态圈

    android实现倒计时动态圈

    这篇文章主要为大家详细介绍了android实现倒计时动态圈,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Android ADB简介、安装及使用详解

    Android ADB简介、安装及使用详解

    ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序,其中客户端是用来操作的电脑,服务端是 Android 设备,这篇文章介绍Android ADB简介、安装及使用,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • Android使用xUtils3.0实现文件上传

    Android使用xUtils3.0实现文件上传

    这篇文章主要为大家详细介绍了Android使用xUtils3.0实现文件上传的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • jenkins 远程构建Android的过程详解

    jenkins 远程构建Android的过程详解

    这篇文章主要介绍了jenkins 远程构建Android的过程详解的相关资料,需要的朋友可以参考下
    2016-09-09
  • 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路

    浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路

    本文主要介绍 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路,这里详细介绍了相关Binder的资料,帮助大家理解学习Android 源码Binder通信机制,有兴趣的小伙伴可以参考下
    2016-08-08

最新评论