Android开发实现消除屏幕锁的方法

 更新时间:2017年09月28日 12:15:22   作者:xxnan  
这篇文章主要介绍了Android开发实现消除屏幕锁的方法,结合实例形式较为详细的分析了Android锁屏的原理及消除屏幕锁的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Android开发实现消除屏幕锁的方法。分享给大家供大家参考,具体如下:

实现屏幕无锁--->当我们开机或者超过锁屏幕时间或按电源键之后屏幕没有锁的一种状态。

经过查询许多资料以及分析代码,我们可以发现最主要的屏幕功能还是在framework/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java中。

里面有一个handleshow方法:

真正的去锁屏实现有一个 handlehide方法,真正的去隐藏锁屏实现 handleshow方法:

private void handleShow() {
  synchronized (KeyguardViewMediator.this) {
    if (DEBUG) Log.d(TAG, "handleShow");
    if (!mSystemReady) return;
    playSounds(true);
    mKeyguardViewManager.show(); //  显示锁屏界面对应的窗口
    mShowing = true;       // 锁屏状态 , 即显示锁屏
    adjustUserActivityLocked();  // 取消对用户Activity的控制
    adjustStatusBarLocked();   //取消对状态栏的控制
    try {
      ActivityManagerNative.getDefault().closeSystemDialogs("lock");
    } catch (RemoteException e) {
    }
    mShowKeyguardWakeLock.release();
  }
}

我们只要将上面注释了的语句注释掉,那么就执行的空的,那样就取消真正的去锁屏实现

同理handlehide方法也只要注释

mKeyguardViewManager.hide();
mShowing = false;
adjustUserActivityLocked();
AdjustStatusBarLocked()

就可以取消真正的去隐藏锁屏实现。

但是做完以上后仍存在一个Bug(问题),就是唤醒屏幕后,会在指定的时间内屏幕由亮变暗,我们还需要做如下修改:按下POWER键时,解除屏幕由亮变暗的Bug。

handleWakeWhenReady(int keyCode)方法下注释掉

pokeWakelock(); //按下POWER键时, 解除屏幕由亮变暗的Bug

就可以达到效果了。

最后还有一种方法就是在KeyguardViewMediator.java中有一个变量mExternallyEnabled,只要将其初始改为false,需要显示界面(doKeyguard())时都不会继续走下去,也可以达到效果。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • Android AsyncTask详解及使用方法

    Android AsyncTask详解及使用方法

    这篇文章主要介绍了 Android AsyncTask详解及使用方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • Android中使用protobuf的具体示例

    Android中使用protobuf的具体示例

    本篇文章主要介绍了Android中使用protobuf的具体示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Android实现系统重新启动的功能

    Android实现系统重新启动的功能

    有些Android版本没有系统重启的功能,非常不方便。需要我们自己开发一个能够重新启动的应用
    2013-11-11
  • Android利用RenderScript实现毛玻璃模糊效果示例

    Android利用RenderScript实现毛玻璃模糊效果示例

    毛玻璃效果(亦称磨砂效果),近两年在移动端的UI设计上越来越流行,下面这篇文章主要介绍了Android利用RenderScript实现毛玻璃模糊效果的相关资料,文中给出了详细的示例代码,需要的朋友可以参考学习,下面来一起看看吧。
    2017-03-03
  • Genymotion模拟器常见问题整理与相应解决方法

    Genymotion模拟器常见问题整理与相应解决方法

    为什么说是常见问题整合呢,因为小编我就是Genymotion模板器最悲剧的使用者,该见过的问题,我基本都见过了,在此总结出这血的教训,望大家不要重蹈覆辙
    2018-03-03
  • Android ListView滚动到指定的位置

    Android ListView滚动到指定的位置

    这篇文章主要给大家介绍了Android中的ListView如何滚动到指定的位置,文章给出了两种解决的方法,并给出详细的示例代码,相信会对大家的理解和学习很有帮助,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Android自定义View绘图实现渐隐动画

    Android自定义View绘图实现渐隐动画

    这篇文章主要为大家详细介绍了Android自定义View绘图实现渐隐动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android中传递对象的三种方法的实现

    Android中传递对象的三种方法的实现

    本篇文章主要介绍了Android中传递对象的三种方法的实现,可以通过Bundle、Intent或者JSON字符串,有兴趣的可以了解一下。
    2017-02-02
  • Android获取所在时区时间的两种方式

    Android获取所在时区时间的两种方式

    Android获取所在时区正确时间的方式有两种,通过wifi获取时间和通过通过GPS获取时间这两种方式,文中通过代码示例给大家的介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Android 数据结构全面总结分析

    Android 数据结构全面总结分析

    这篇文章主要为大家介绍了Android 数据结构全面总结分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论