安卓开发之应用锁

原创 2015年11月17日 20:26:01

安卓应用锁在各大应用商店都有很多类似的产品,所以关于其功能我就不再过多的介绍了。

现在,我们来简单说说应用锁核心功能的实现原理:

  1. 首先,需要一个Service来实时监听当前运行的程序,判断是否为选中需要锁定的程序。这里需要设置一个时间间隔,不然会加重CPU的负担,增加耗电量。
  2. 如果当前正在显示的程序是被锁定的程序,那么我们需要弹出锁定窗口。让用户输入密码,这里应当注意:需要重写Back方法,实现返回桌面的功能。
  3. 如果输入密码正确,那么直接finish这个Activity就可以实现进入被锁定的应用了。如果密码错误,可作相应的提示,要求重新输入。
我们来分别讲解每个步骤如何实现的。

1、监听程序,需要用到ActivityManager当中的方法。代码如下:
<span style="white-space:pre">	</span>ActivityManager mActivityManager;  
        mActivityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);  
        ComponentName topActivity = mActivityManager.getRunningTasks(1).get(0).topActivity;  
        String packageName = topActivity.getPackageName(); 
通过上面的代码就可以获取到当前界面所属的应用的packageName。然后判断该应用是否属于被锁定的应用。
if(lockName.get(i).equals(packageName)){  
               return true;
           } 
2、通过一个boolean变量isUnlockActivity来判断当前应用是否已经解锁了。如果已经解锁了,那么不用再输入密码。可以直接进入。
if(isLockName() && !isUnLockActivity){  

<span style="white-space:pre">	</span>//调用了解锁界面之后,需要设置一下isUnLockActivity的值                           <pre name="code" class="java"><span style="white-space:pre">	</span>isUnLockActivity = true; 
Intent intent = new Intent(LockServ.this,UnLockActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); }

至于,Back方法的重写,可以在重写里面直接调用Home键的函数即可。这样,Back键也可以直接回到桌面。(这样虽然方便,但是在某些场合会造成用户的困惑,如果用户正在程序内调用某个被保护的应用,那么此时,返回键应当回到当前应用中,而不应该是桌面)

3、最开始我在处理怎么进入解锁的应用中的时候,不知道怎么处理。想过重新调用该应用,但是处理起来很复杂。后来,干脆直接finish当前的Activity。根据安卓的机制,就会自动回到上一个Activity当中来。这样是能成功的。但是在某些情况下,会产生一些Bug,不能正确的进入应用。可能和这个有关系,后期应当在这上面做一些改进。

完美运行的应用锁Demo源码

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

最近工作上要用到应用锁(AppLocker),早上装了个试玩了一下,下午花了2个小时捣鼓出来一个demo (基于android 6.0),简单分享一下。   免责声明:这篇文章纯粹是个人YY,未参考或...

Android中应用锁的实现之账号盗取

一、前言前几天忙着公司的活,最近又可以歇歇了,休息不能不做事呀?今天就来研究一下Android中应用锁的实现。应用锁顾名思义就是对app进行加密,在打开app的时候需要输入指定的密码才能打开应用。现在...

android 屏蔽Home键, 屏蔽BACK键,MENU键(亲自实践有效)

1.屏蔽Home键 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.Lay...

android如何屏蔽掉home键

在2.3版本yixia重写下面方法就能重写home键 public void onAttachedToWindow() {       this.getWindow().setType(Windo...

安卓应用开发

  • 2014年11月23日 23:25
  • 843B
  • 下载

安卓应用程序密码锁的实现

功能: 1.应用程序程序中设置了密码锁,每当用户打开应用时,要弹出密码输入界面; 2.当用户按住home键,将程序隐在后台而非退出,经过一段时间后,再重新启动,也要弹出密码输入界面; 3.当应用在前台...

移动开发应用(安卓)

  • 2016年01月06日 14:40
  • 474KB
  • 下载

安卓应用开发

  • 2014年06月09日 14:29
  • 167KB
  • 下载

Moto Droid4 刷机包 CM12.1增强版 RC5.6 安卓5.1.1 归属和T9 h2os主题化 应用锁等

Moto Droid4 刷机包 CM12.1增强版 RC5.6 安卓5.1.1 归属和T9 h2os主题化 应用锁等 下载链接: http://download.csdn.net/detail/h...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓开发之应用锁
举报原因:
原因补充:

(最多只允许输入30个字)