当我们为程序设置密码后,当我们第一次进入该程序时就会提示我们输入密码,输入正确密码后就可以继续访问该程序,如果再次访问该程序就不会提示我们输入密码,这就是市面上常见程序锁的实现。

开发思路:

1. 开启服务,在服务中开启一个死循环,这个死循环用来检测当前访问的程序是不是被加锁的程序,如果是则弹出输入密码对话框。这里采用数据库来保存被加锁的程序。

2. 密码被保存在xml 中,如果匹配密码后则进入程序界面。

3.用一个boolean变量来防止多次进入同一个程序而导致显示密码对话框。

关键代码:

核心代码

 public void onCreate() {//daolockAppDao = new LockAppDao(getApplicationContext());//从数据库获取到程序锁的集合blockapppacks = lockAppDao.findAll();//获取程序锁集合和程序锁当前状态是否已经打开blockappinfos = new ArrayList<LockAppInfo>();fillData(blockapppacks);// 得到activity的管理器activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);intent = new Intent(this, EnterPasswordActivity.class);// 在新的任务栈中创建 activity的实例intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);new Thread() {@Overridepublic void run() {// 看门狗, 不停的查看当前activity任务栈的栈顶while (true) {// 首先获取到最上面的任务栈, get(0) 获取到任务栈栈顶的activityString packname = activityManager.getRunningTasks(1).get(0).topActivity.getPackageName();for (LockAppInfo apppackinfo : blockappinfos) {if (packname.equals(apppackinfo.getPackname())) {//防止重复弹出密码对话框if (!apppackinfo.isFlagcanstart()) {// 弹出密码对话框,弹出新的activity 覆盖当前要启动的activityintent.putExtra("packagename", packname);startActivity(intent);}}}try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}}}.start();super.onCreate();}private void fillData(List<String> blockapppacks2) {for(String blockapp :blockapppacks2 ){LockAppInfo info = new LockAppInfo();info.setPackname(blockapp);info.setFlagcanstart(false);blockappinfos.add(info);}}

匹配密码

 public void entry(View view){System.out.println("123");String password = et_password.getText().toString();   String pwd = sp.getString("lock_app_pwd", "");Intent intent = getIntent();if (password.equals(pwd)){if(intent!=null){String packname =  intent.getStringExtra("packagename");Log.i(TAG,packname);iLockService.stopLockAppFlag(packname);}finish();}}

输入密码时屏蔽后退键

 // 屏蔽用户按后退键@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {return true;}return super.onKeyDown(keyCode, event);}

Android之世面上程序锁的实现相关推荐

  1. android安全问题(二) 程序锁

    导读:本文介绍如何实现对应用加锁的功能,无须root权限 某些人有时候会有这样一种需求,小A下载了个软件,只是软件中的美女过于诱惑与暴露,所以他不想让别人知道这是个什么软件,起码不想让别人打开浏览.而 ...

  2. Android开发——程序锁的实现(可用于开发钓鱼登录界面)

    1. 程序锁原理 1.1 实现效果: 在用户打开一个应用时,若此应用是我们业务内的逻辑拦截目标,那就在开启应用之后,弹出一个输入密码的界面,输入密码正确则进入目标应用.若不输入直接按返回键,则直接返回 ...

  3. Android程序锁的实现

    1.程序功能介绍 本程序实现对特定应用的监听,当特定应用前台运行时,立刻弹出本程序锁应用界面,用户输入正确密码后,才能转到特定应用继续使用,用户点击后退按钮无效,点击home键后,再启动被锁应用后,仍 ...

  4. 适用于Android设备的十大应用程序锁

    现如今的智能手机非常个人化,其中的应用程序确实会携带不同形式的个人数据,例如图片,消息,银行应用程序等. 应用锁也称为隐私锁,它是所有移动用户最关注的隐私问题之一.可以保护应用程序免受陌生人或在智能手 ...

  5. Android:程序锁功能的简单实现

    如我们所知,现在有很多牛逼的安全软件都带有程序锁的功能.当然,名字可能不一样,有的叫隐私保护,有的叫软件锁.等等.但是这种名字其实都是表达一种意思,就是可以给你手机里面的app加以保护.只有你给你的A ...

  6. Android 程序锁

    导读:本文介绍如何实现对应用加锁的功能,无须root权限 某些人有时候会有这样一种需求,小A下载了个软件,只是软件中的美女过于诱惑与暴露,所以他不想让别人知道这是个什么软件,起码不想让别人打开浏览.而 ...

  7. android程序锁预研

    项目要求增加程序锁功能.要预研一下. 网上反编了比较流行的程序锁,了解到大概方向: 1 后台服务不断监视显示在前台的应用. 2 当是需要锁住的应用,启动程序锁密码页面. 3 密码成功则关闭程序锁密码页 ...

  8. android5.1+可用的应用锁,应用锁 - 这个程序锁,不寻常... - Android 应用 - 【最美应用】...

    手机的安全性就不用小美多说了吧!谁也不希望自己的手机被任何人使用,就算是熟人,也会有不自在,尽管小美不能帮助你避开这些问题,但是小美却可以为你推荐一款超棒的应用锁,相信有了它,就算有人动了你的手机,想 ...

  9. android底部上滑锁屏

    概述 各种测试,各种查资料,总算解决了底部上滑锁屏功能的实现.一个底部三大金钢折腾死个人. 最后借助的还是AccessibilityService实现.因为我想实现的底部导航栏一定要显示在屏幕最底端, ...

最新文章

  1. 独家!扒出腾讯新高管余总的真面目!
  2. C++继承中的访问级别
  3. Android文件Apk下载变ZIP压缩包解决方案
  4. Java高级工程师必看系列,从基础到源码统统帮你搞定
  5. 《汇编语言》王爽—第五章实验三详解
  6. C++解析(31):自定义内存管理(完)
  7. 计算机机房需求调查表,机房建设需求调查表.doc
  8. 4Packet Tracer – 配置 VLAN
  9. 深度学习——卷积神经网络是否能编码位置信息?
  10. 动态规划 - 切钢条 (python)
  11. 极客头条:5月25日科技要闻 | 华为自研操作系统已注册;大疆回应信息泄露;2019 新款 iPhone 曝光
  12. 希尔排序选择排序时间复杂度分析
  13. MSDN无法打开的解决办法
  14. 测试管理知识:如何从业务高手转型为基层管理者
  15. trunc()用法和add_months()
  16. 201871010104-陈园园 《面向对象程序设计(java)》第二周学习总结
  17. 一套完整的logo设计流程是怎样的
  18. #私藏项目实操分享#Python爬虫实战,requests+xpath模块,Python实现爬取豆瓣影评
  19. 2018年广东工业大学文远知行杯新生程序设计竞赛 1010 温柔的手彼此相系β
  20. typora+坚果云 实现笔记云同步

热门文章

  1. Qt5.10编写俄罗斯方块
  2. 【rtsp流在Web端实时播放】使用 VUE + webrtc-steamer
  3. 邻接矩阵用c语言,邻接矩阵无向图(一)之 C语言详解
  4. phpcms选择文件无法加载插件怎么办_浏览器显示无法加载插件怎么解决
  5. 干货 | Elasticsearch7.X X-Pack基础安全实操详解
  6. Cox Container 部署Sawyer智能协作机器人
  7. 【转】 SAP CO内部订单配置
  8. 采用路缘石成型机在公路建设中与人工调整两相配合
  9. 中科蓝汛 ----POWER 10S复位系统的坑
  10. 使用 Python 对股票数据分析预测