Android 隐藏锁机

本文介绍了Android系统中为了提升解锁体验而进行的隐藏锁机处理,详细阐述了在面部解锁或手势解锁成功后如何瞬间显示并移除锁机,同时确保背光控制的平滑过渡,以提供良好的用户体验。
摘要由CSDN通过智能技术生成

Android 隐藏锁机

Android 按电源键面部解锁或者抬手亮屏以及通过各种手势亮屏面部解锁,为了让用户感受不到解锁的速度快慢,会做一些特殊处理。比如本文要说的隐藏锁机,那什么时候又显示锁机呢?最好是解锁成功后立马显示锁机,同时移除锁机。隐藏锁机的同时需要拦截背光,否则就直接看到桌面了。显示锁机的同时需要释放拦截背光,否则手机就是黑屏的,无法设置背光,带来不好的用户体验。解锁成功后需要移除锁机,否则解锁成功还是看到锁屏,无法进到桌面或正在打开的应用。

下面从代码看看对锁机的相关处理:

public class KeyguardViewMediator extends SystemUI {
    ...
    // used for handler messages
    private static final int SHOW = 1; // 显示锁机
    private static final int HIDE = 2; // 隐藏锁机
    private static final int RESET = 3;
    private static final int VERIFY_UNLOCK = 4; // 验证移除锁机
    private static final int NOTIFY_FINISHED_GOING_TO_SLEEP = 5;
    private static final int NOTIFY_SCREEN_TURNING_ON = 6;
    private static final int KEYGUARD_DONE = 7;
    private static final int KEYGUARD_DONE_DRAWING = 8;
    private static final int SET_OCCLUDED = 9;
    private static final int KEYGUARD_TIMEOUT = 10;
    private static final int DISMISS = 11; // 使锁机消失
    private static final int START_KEYGUARD_EXIT_ANIM = 12;
    private static final int KEYGUARD_DONE_PENDING_TIMEOUT = 13;
    private static final int NOTIFY_STARTED_WAKING_UP = 14;
    private static final int NOTIFY_SCREEN_TURNED_ON = 15;
    private static final int NOTIFY_SCREEN_TURNED_OFF = 16;
    private static final int NOTIFY_STARTED_GOING_TO_SLEEP = 17;
    private static final int SYSTEM_READY = 18;

    ...

    /**
     * This handler will be associated with the policy thread, which will also
     * be the UI thread of the keyguard.  Since the apis of the policy, and therefore
     * this class, c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值