应用锁(AppLocker)原理及代码实现

本文介绍了如何在Android上实现应用锁(AppLocker),通过分析获取前台进程的方法,如在Android 6.0上使用UsageStat API,并展示了一个简单的服务(AppLockerService)来监控并启动锁屏界面。此外,还涉及到锁屏界面的设计和手势密码的验证过程。
摘要由CSDN通过智能技术生成

最近工作上要用到应用锁(AppLocker),早上装了个试玩了一下,下午花了2个小时捣鼓出来一个demo (基于android 6.0),简单分享一下。

免责声明:这篇文章纯粹是个人YY,未参考或反编译任何商业app 

所谓应用锁,说白了就是在监测到目标app启动时额外起一个锁屏界面把它盖住。这种方式的缺点是显而易见的,无法100%保证盖住,有时候会先闪出一个app启动界面,然后才被盖住。最彻底的方式当然是在framework里拦,不过这种方式需要跟平台厂商合作,不在今天的讨论范围之内。

先看一下效果,有两种盖法,一种是起一个新的activity,还有一种是起一个悬浮窗。我没有比较过这两种方式的优劣,先采用了第一种。悬浮窗之前封装了一个类,后面有时间再写文章分享出来。

 

下面讨论实现细节:

在早期的android版本中,大家都是通过getRunningTasks()来获取前台进程的,但是出于安全考虑这个API已经被google阉割了,要用这个API必须要申请REAL_GET_TASKS权限,但是这个权限又是signature or system的,所以基本上是然并卵。。。

<permission android:name="andr
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值