使用系统自带ScreenLock来保护你的App

如果你的App需要验证密码,我们可以使用系统的ScreenLock来进行验证,这样做的好处是我们的用户不必使用多个不同的密码来验证身份,OK,下面我们来看看如何使用系统锁屏:

先来介绍几个Framework里面的锁屏相关的类:

LockPatternUtils:这里提供了锁屏的一些帮助类,我们最需要使用的是这样一个方法:

public boolean isSecure() {
        long mode = getKeyguardStoredPasswordQuality();
        final boolean isPattern = mode == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
        final boolean isPassword = mode == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC
                || mode == DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
                || mode == DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC
                || mode == DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
        final boolean secure = isPattern && isLockPatternEnabled() && savedPatternExists()
                || isPassword && savedPasswordExists();
        return secure;
    }

这个方法用来检测当前系统是否已经使用了锁屏。

ChooseLockGeneric:这个类是我们设置锁屏的主要类:

我们通过调用这个类来引导用户增加一个系统锁屏:

                Intent intent = new Intent("/");
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                ComponentName cm = new ComponentName("com.android.settings","com.android.settings.ChooseLockGenericForKS");
                intent.setComponent(cm);
                startActivity(intent);

那么如何进行锁屏的验证呢,我们可以使用这样一个方法:

private boolean runKeyguardConfirmation(int request) {
        Resources res = getActivity().getResources();
        return new ChooseLockSettingsHelper(getActivity(), this)
                .launchConfirmationActivity(request,
	                res.getText(R.string.master_clear_gesture_prompt),
	                res.getText(R.string.master_clear_gesture_explanation));
    }

我们需要在调用的Activity中使用onActivityResult来获取返回值:

if (requestCode == 55 && resultCode == Activity.RESULT_OK) {

55是我们的request code。

通过以上方法,我们就可以在我们的App中添加验证、增加系统锁屏验证了。

以上。

时间: 2024-09-27 05:02:39

使用系统自带ScreenLock来保护你的App的相关文章

Android手机如何设计一款类似于系统自带的“蓝牙设置”界面的App?

问题描述 Android手机如何设计一款类似于系统自带的"蓝牙设置"界面的App? 我想用手机连接多种蓝牙设备,目前在系统自带的"蓝牙设置"界面可以通过人工点击操作实现配对.连接.现在我想设计一款App,它可以实现自动搜索.配对.输入密码等功能,目前的思路是先模仿系统的"蓝牙设置界面"写一款App,然后再加入自动的功能.请教一下,如何写一款"蓝牙设置"的App?或者大家有什么好的建议或者意见/欢迎赐教!! 解决方案 首先是界面

保护孩子视力,帮你删除XP系统自带游戏

我们都知道在电脑系统的附件中,有系统自带的"游戏组件",很多xp系统用户都想把"附件"中的游戏组件删除掉,尤其是那些家中有小孩的用户,他们买电脑是为了让家中的孩子学习用的,所以说没有必要保留那些"游戏组件",但是在"控制面板"的"添加/删除程序"选项中并没有游戏这一项,所以删除不了游戏组件,那么遇到这种情况,我们有什么方法可以解决这个问题呢?下面小编就带大家一起去了解下删除游戏组件的方法! 删除游戏组件 方

win8系统自带的删除浏览历史记录操作介绍

  大家都知道,当我们浏览网页时,电脑的各种历史记录会自动的保存,这一方面可以记录我们浏览的位置,但是负面作用就是暴露了隐私,而且会对电脑的运行速度产生一定的影响,所以我们要及时的删除浏览历史记录数据,如临时Internet文件.下载历史记录.cookie和网站数据等等,这些都是本地文件残留的记录,下面小编教大家的是如何删除浏览器中的聊天记录,一起来看看win8系统自带的删除浏览历史记录的操作技巧吧! 操作方法如下: 1.打开我的电脑(win8是计算机),在里面直接找到控制面板的选项. 2.来到

Win7系统自带防火墙使用介绍

许多用户已将防火墙列为装机必备的软件之一,相比之下,Windows 7系统自带的防火墙,在外观上显得简洁,在本文将为大家介绍下win7自带防火墙使用,感兴趣的朋友可以参考下 在互联网越来越不安全的今天,许多用户已将防火墙列为装机必备的软件之一,而各大安全厂商为了吸引用户们的眼球,也将自己的防火墙做得花样倍出.相比之下,Windows 7系统自带的防火墙,在外观上显得简洁,不过经过了多年的发展与改进后,如今已经完全作为一款标准的个人防火墙存在于系统之中. 全新的启动方式与修复 在启动方式上Wind

体验Windows 8系统自带防火墙

  按"Win+W"进入Win8系统的设置搜索界面(触屏用户可以从屏幕右侧向中间划动然后从超级按钮菜单中选择搜索),输入关键字"防火墙",左边立刻出现Windows防火墙.允许应用通过Windows防火墙.检查防火墙状态等相关的搜索结果. 键盘用户还可以按"Win+X"组合键打开Win8快速链接菜单,依次打开"控制面板-系统和安全-Windows防火墙",也可快速打开Win8系统自带的防火墙设置界面. 图示:从Win8控制面板

如何关闭xp/win7系统自带的防火墙

  windows xp关闭系统自带防火墙 方法一:进入"控制面板-安全中心",如下图所示: 点击"Windows 防火墙",选中下方的"关闭(不推荐)",如下图所示: 确定,完成关闭防火墙的操作. 方法二:进入"控制面板-网络连接",找到本地连接,右键点击属性,切换到高级选项. 点击设置,选择"关闭(不推荐)",确定,完成关闭防火墙的操作. 方法三:进入"控制面板-管理工具-服务",禁

Android系统自带的VPN服务框架实例详解

Android系统自带的VPN服务框架 Android从4.0开始(API LEVEL 15),自己带了一个帮助在设备上建立VPN连接的解决方案,且不需要root权限,本文将对其做一个简单的介绍. 一.基本原理 在介绍如何使用这些新增的API之前,先来说说其基本的原理. android设备上,如果已经使用了VpnService框架,建立起了一条从设备到远端的VPN链接,那么数据包在设备上大致经历了如下四个过程的转换: 1)应用程序使用socket,将相应的数据包发送到真实的网络设备上.一般移动设

在iPhone中直接调用系统自带的地图程序实现导航

在一个国外iPhone外包项目中,需要实现一个GPS功能:将当前所在地和目的地进行导航.GPS定位的话,iPhone中容易实现,通过CLLocationManager对象可以实现当前位置定位,而实现地图导航功能就有点麻烦,在开发初期,我们采用的是UIWebView加载http://www.aliyun.com/zixun/aggregation/12594.html">Google地图,然后调用其API来实现,但是导航效果不是很理想,相关的API详见:http://code.google.

通过notes系统自带的修复工具修复损坏的notes个人数据库

今天咱们就介绍一下,如何通过notes系统自带的修复工具修复损坏的个人数据库,那是什么工具呢,那就是fixup.exe,这个程序是notes系统自带的修复工具,类似于office自带的patscan工具,pstscan用来修复.pst数据文件的,废话不多说了,操作具体见下. 环境介绍:环境内部署了一台版本为domino 8.5.1的domino服务器,然后安装路径及数据库路径均安装到D盘下,我们也知道,notes个人数据库存放路径在数据库路径下的mail文件夹下,我们今天就比如lisi这个用户的