`

添加屏保解锁功能

阅读更多
[size=x-large]1. 系统设置,执行LockPatternUtils save密码等屏保参数
2.framework/core/packages/SystemUI com.android.systemui.keyguard  这个类总的处理那个屏幕显示的逻辑
3.存储屏保的代码在framework/core/packages/Keyguard  这个app里面定义了各种UI,根据之前保存的屏保类型,来加载







    private void showBouncerOrKeyguard() { 
        if (DEBUG) Log.d(TAG, "showBouncerOrKeyguard() is called.") ; 
     
        if (mBouncer.needsFullscreenBouncer()) { 
            if (DEBUG) { 
                Log.d(TAG, "needsFullscreenBouncer() is true, show \"Bouncer\" view directly."); 
            } 
            // The keyguard might be showing (already). So we need to hide it. 
            mPhoneStatusBar.hideKeyguard();//需要使用Bouncer隐藏keyguard 
            mBouncer.show(true /* resetSecuritySelection */);//显示Bouncer 
        } else { 
            if (DEBUG) { 
                Log.d(TAG, "needsFullscreenBouncer() is false," 
                    + "show \"Notification Keyguard\" view."); 
            } 
            mPhoneStatusBar.showKeyguard();//滑屏解锁 
            mBouncer.hide(false /* destroyView */); 
            mBouncer.prepare(); 
        } 
    } 



显示流程-》showSecurityScreen-》getSecurityView-》getSecurityViewIdForMode-》







1.SecuritySettings->获取安全模式布局文件(getResIdForLockUnlockScreen),如果没有设置任何密码则加载security_settings_chooser ,如果是已经设置了密码锁则加载security_settings_password

2.onPreferenceTreeClick 触发进去的设置部分,进入com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment

3.ChooseLockGenericFragment  没有设置密码,则直接加载security_settings_picker选择任意加密方式,如果已经设置了密码,那么进入ConfirmLockPassword,确认输入后,再回来,如果没有设置过密码,如选择密码方式,那么跳转ChooseLockPassword 输入密码,保存到系统



#####system ui and keyguard unlock prograss############################

password unlock----->

KeyguardPasswordView->onEditorAction()->verifyPasswordAndUnlock()->

KeyguardSecurityContainer
KeyguardSecurityContainer->KeyguardSecurityCallback mCallback ->reportUnlockAttempt,
mSecurityCallback.dismiss(authenticated); ->mCallback->

SecurityCallback->dismiss(authenticated);


KeyguardViewBase->public boolean dismiss(boolean authenticated)

KeyguardSecurityContainer->showNextSecurityScreenOrFinish

KeyguardViewBase->mViewMediatorCallback.updateNavbarStatus() ;


mViewMediatorCallback.keyguardDone(true);  mViewMediatorCallback.updateNavbarStatus

-->system ui  --->
ViewMediatorCallback mViewMediatorCallback
keyguardDone(authenticated, true);    updateNavbarStatus() ;





PhoneStatusBar->KeyguardViewMediator mKeyguardViewMediatorCallback 这是交互的关键所在keyguard和system ui的交互

[/size]
分享到:
评论

相关推荐

    【最新版】macpilot.dmg【亲测可用】最好的解锁Mac超过1,200个功能

    设置登录窗口图片,将屏幕保护程序用作桌面,修改高级文件权限(ACL),更改系统欢迎消息,在QuickTime中启用同时记录,查看系统日志,或在众多应用程序中启用“调试”菜单。 也许您正在感觉需要更简单的生活方式?...

    macpilot.dmg Mac 1200多个功能

    设置登录窗口图片,将屏幕保护程序用作桌面,修改高级文件权限(ACL),更改系统欢迎消息,在QuickTime中启用同时记录,查看系统日志,或在众多应用程序中启用“调试”菜单。 也许您正在感觉需要更简单的生活方式...

    我爱MV v3.0.0.zip

     二、照片导入时方便的裁剪、添加相框等功能;  三、支持添加动态的照片说明文字;  四、支持添加GIF动画、频道LOGO等元素修饰MV;  五、所见即所得的编辑方式,随时可以对制作中的MV进行预览;  六、输出...

    VB键盘锁定

    另外,增加了在任务栏添加小图标的功能以及在任务管理器"应用程序"及"进程"隐藏进程的功能.并且,锁定电脑后,禁用屏保密码,可以使用快捷键解锁. 我发布这个代码,主要想让大家一起分享,共同学习vb6.0 .我学的不是...

    挂机锁屏助手

    V2.1.0 更新日期:2014-11-01 1、全新的界面设计; 2、全新的图标; 3、一些人性化改进。 V2.0.0 正式版 更新日期:2014-8-9...添加了重启恢复功能; V1.2 全面修改软件界面; 可以更改界面透明度; 优化了用户体验。

    零一锁屏王 v8.81.rar

    软件既可以弥补Windows自带的屏幕保护程序的不利,更能实现电脑智能锁屏,控制电脑使用时间,特别是对有喜欢玩电脑孩子的家长而言,零一锁屏王能成为家长的好帮手,软件界面美观简洁、简单全面、实用方便,可快速...

    Smart_Launcher_Pro_v5.4_b012.apk

    真正的智能 发射器 简单,轻便,快速是Smart Launcher的口号,它是创新的自定义启动器,在2016年1月被Google选为Play商店中最好的应用程序...Pro功能已解锁; Feature Pack 2018已解锁; 禁用分析; 广告已删除。

    键盘加锁王v1.6中文安装免费版

    键盘加锁王主要功能就是禁键盘上的按键,想禁哪个就禁哪个!...另外,增加了在任务栏添加小图标的功能以及在任务管理器"应用程序"及"进程"隐藏进程的功能.并且,锁定电脑后,禁用屏保密码,可以使用快捷键解锁。

    300个注册表优化修改文件

    只允许用户使用特定的屏幕保护.reg 指定密码的最小长度.reg 个性化你的IE和OUTLOOK : 点击浏览该文件 打造个性化的IE.reg 定制IE的文字大小.reg 定制IE字体的大小.reg 改变IE的默认下载目录.reg 更改...

    VB锁定键盘的程序.7z

    用VB编程实现锁定计算机键盘,主要功能就是禁止键盘上的任意按键,同时还可以为...另外还可在任务栏添加小图标和任务管理器"应用程序"及"进程"隐藏进程的功能,并且锁定计算机后禁止使用屏保密码,可以使用快捷键解锁。

    计算机应用基础测试答案及解析四.doc

    A、使用小图标 B、锁定任务栏 C、解锁任务栏 D、自动隐藏任务栏 正确答案:D 解析:在设置任务栏时,选定"自动隐藏任务栏"后,只有当鼠标置于任务栏所在位置时 任务栏才显示,否则屏幕上不显示任务栏。参见教材P64...

    Alparysoft Video Lock人像识别工具

    <br>使用 Alparysoft Video Lock时还要特别注意,如果我们在操作系统中设置的显示器关闭等待时间短于屏幕保护的等待时间,那么就不能使程序进入安全保护模式,因此,“关闭监视器”这个选项应设为“从不”,或者...

    NetSupport School 课堂管理软件(简体中文版)

    除了快速启动,11 版还扩展了常规的锁定 PC、遮蔽屏幕功能,而且包括立即最小化学生 PC 上所有应用程序的“显示桌面”功能,以及自动关闭学生 PC 上所有应用程序并予以警告的“清除桌面”功能。 学生端工具栏 11 ...

    EXCEL集成工具箱V8.0完整增强版(精简)

    【添加注解】 可视化地窗体添加与修改注解功能。提供50种美观大方的批注样式供选择,支持图片背景批注与批量写批注。最大的优点是将指定的任意区域按每个存储格内容为一行加入到当前批注中,允许批注内容中是否显示...

    EXCEL集成工具箱V6.0

    【添加注解】 可视化地窗体添加与修改注解功能。提供50种美观大方的批注样式供选择,支持图片背景批注与批量写批注。最大的优点是将指定的任意区域按每个存储格内容为一行加入到当前批注中,允许批注内容中是否显示...

    实用万年历Sywnl(v6.11)

    实用万年历是一款比较实用的多功能日历。日期计算等均采用了现代高精度天文算法。日期范围:从公元前4600年至公元10000年,历时近一万五千年。包括公历、农历、回历、历史年号、公农历节日、节气、干支(生辰八字)...

    实用万年历Sywnl(v6.28)

    实用万年历是一款比较实用的多功能日历。日期计算等均采用了现代高精度天文算法。日期范围:从公元前4600年至公元10000年,历时近一万五千年。包括公历、农历、回历、历史年号、公农历节日、节气、干支(生辰八字)...

    实用万年历v5.9绿色特别版_包括农历节日.生肖.星座.黄历

    标题式、日历式、时钟式小窗口可以随意拖动位置,当小于屏幕边缘时鼠标离开后即在该处自动隐藏,鼠标移到该处时又出现,小窗口双击或鼠标右击后返回主窗口。显示到托盘图标、整合到任务栏的时间区这两种方式,当鼠标...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例111 利用图片制作屏幕保护程序 实例112 图片动画 3.11 简单游戏设计 实例113 拼图游戏 实例114 网络五子棋 实例115 彩票抽奖机 3.12 OpenGL程序设计 实例116 制作OpenGL动画 实例117 利用OpenGL绘制...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例111 利用图片制作屏幕保护程序 实例112 图片动画 3.11 简单游戏设计 实例113 拼图游戏 实例114 网络五子棋 实例115 彩票抽奖机 3.12 OpenGL程序设计 实例116 制作OpenGL动画 实例117 利用OpenGL绘制...

Global site tag (gtag.js) - Google Analytics