为了安全——应用锁屏开发实战

今天我们来谈一个问题:应用锁屏。
说老实话,这种设定目前已经被广泛使用了,多见于支付宝、京东金融、QQ等对安全性和隐私性要求较高的程序使用。
关于该功能的实现,有不止一条解决办法。这里就不一一列举了,只对其中一种做详细解释和示例程序的代码分享。
这里我声明一下,好像自从写博客到现在,我一直都在用Android Studio为IDE来开发,强烈建议还在使用Eclipse的小伙伴尽快使用它。尽管一上来可能有些许不便,但是上手之后效率会有所提高,不信就去试试!
本文介绍的方法解决思路如下:

  1. 监听屏幕变化,即关闭和打开屏幕;
  2. 设置需要出现锁屏的标志变量,默认值为false。当接收到屏幕被关闭的广播后,将其置为true。
  3. 在Activity生命周期onResume中,检测上述变量值,若为true,则启动安全校验机制,反之无操作。

Demo代码中包含的锁屏机制提供了多种选项,可自由组合实现不同的应用解锁效果。

步骤1 设置监听器

首先我们写一个类,集成BroadcastReceiver,用来接收系统Screen off的Action。这里我才用了Java代码中动态注册监听器的方法,而非xml配置文件,因为这样可以更方便的让我们对监听使能进行控制。由于监听器需要在代码中进行实例化,因此我们可以在监听器相关类中定义布尔变量,来标识是否有了关闭屏幕的操作。代码片段如下所示:

public class LockScreenReceiver extends BroadcastReceiver {

    private boolean isNeedCheck;

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        //关闭屏幕
        isNeedCheck = true;
        }
    }

    public void unRegist() {
        isNeedCheck = false;
    }

    public boolean isNeedCheck() {
        return isNeedCheck;
    }
}

步骤2 动态注册监听器

这一步骤要求我们对监听器进行动态注册,所谓动态注册就是绑定到指定的控件上,由用户自由选择,进行注册和取消注册。
具体代码见Demo。下面放上Github地址:
https://github.com/XiaoWenHan/Demo_SafeScreen

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,018评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 红叶秋风斜雨, 农家阡陌鱼池, 行人断路酒家。 日落观潮, 鸳鸯同栖垂柳。
    迦夜诗人阅读 187评论 0 0
  • 【网站制作】 《简介》网站就是由多个网页联系在一起构建出来的一个整体站。网页的标准定义:网页就是文字,图片加超链接...
    黑色的夜阅读 689评论 0 9
  • 发现和老公越来越不能沟通!不论是对孩子的教育问题,和家人的沟通问题,还是我们夫妻的交流问题。
    榆木清清阅读 188评论 0 0