在判断输入的密码正确后,发送一个广播
//进行输入密码的验证if(new MD5Utils().digestPassWord(_intput_password).equals(password)){//发送一个广播 //然后到服务中去注册 广播  Intent intent2 = new Intent();intent2.setAction("openlock.to.home.table");//将相关应用的包名传递过去intent2.putExtra("package", packageName);sendBroadcast(intent2);//隐藏对话框alertDialog.dismiss();//关闭输入密码的对话框 finish();}else{
Toast.makeText(mContext, "密码不正确 请重新输入 …… ", 0).show();return;}在服务中代码注册广播接受者,在广播接受者的onreceive方法获取传递包名//用来接收锁定屏幕的广播 public class SoftLockScreenRecever extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {//获取锁定屏幕的后传过来的包名 softlockPackage = null;}}
//用来接收锁定应用程序输入正确密码后发送的广播 public class SoftLockOpenRecever extends BroadcastReceiver{@Overridepublic void onReceive(Context arg0, Intent intent) {//获取解锁后传过来的包名 softlockPackage = intent.getStringExtra("package");}}在服务 的Oncreate方法中注册广播 public void onCreate() {super.onCreate();//注册解锁 广播接受 者 softLockOpenRecever = new SoftLockOpenRecever();IntentFilter intentFilter_openLockFilter = new IntentFilter();intentFilter_openLockFilter.addAction("openlock.to.home.table");registerReceiver(softLockOpenRecever, intentFilter_openLockFilter);//注册锁屏广播接受者softLockScreenRecever = new SoftLockScreenRecever();IntentFilter soft_lock_screen = new IntentFilter();soft_lock_screen.addAction(Intent.ACTION_SCREEN_OFF);registerReceiver(softLockScreenRecever, soft_lock_screen);activityManager = (ActivityManager) getApplication().getSystemService(getApplication().ACTIVITY_SERVICE);
在服务的onDestroy方法中注销广播接收者@Overridepublic void onDestroy() {super.onDestroy();//注销广播接收者 if (softLockOpenRecever!=null) {unregisterReceiver(softLockOpenRecever);softLockOpenRecever=null;}if (softLockScreenRecever!=null) {unregisterReceiver(softLockScreenRecever);softLockScreenRecever=null;}}在弹出输入密码框处进行判断,如果打开的应用已经解锁,那么就不再进行输入密码的操作;
while(isLock){//获取正在运行的程序 List<RunningTaskInfo> runningAppProcesses = activityManager.getRunningTasks(1);for (RunningTaskInfo runningAppProcessInfo : runningAppProcesses) {ComponentName componentName =  runningAppProcessInfo.baseActivity;packageName = componentName.getPackageName();//判断一下是不是要锁定的程序   boolean contains = queryAllSoftLock.contains(packageName);if (contains) {//进行判断 ,如果 应用 解锁后,就不再去拦截 if (!packageName.equals(softlockPackage)) {Intent intent = new Intent(SoftLockService.this,SoftLockInputPassword.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra("package", packageName);startActivity(intent);}}}

安卓开发——锁定软件——输入密码后重复弹出输入密码窗口的解决方法相关推荐

  1. 【windows系统】360浏览器按F12弹出独立窗口的解决方法(图文)

    一.打开浏览器设置 二.打开高级设置,点切换内核 三.选择对应的网站地址删除即可

  2. maya2018点输入序列号后不弹出激活页如何解决

    maya2018点输入序列号后不弹出激活页如何解决 作者在maya2018的过程中由于失误,使得第一次激活没有成功,然后我再点击maya2018的图标以后,想继续重新激活,但是每次点击输入序列号以后就 ...

  3. 关于U盘无法弹出的几种解决方法

    U盘无法弹出的N种解决方法 [转自PChome.net] 大家是不是经常遇见"现在无法停止'通用卷'设备.请稍候再停止该设备."的问题?经常插上u盘,mp3,移动硬盘等设备,想要安 ...

  4. win7运行c语言程序,win7打开程序弹出错误0xc000005的解决方法

    有很多win7旗舰版用户反馈,在打开一些程序时候会弹出错误0xc000005的提示导致程序无法打开,比如帝国时代3.穿越火线.三国志13等游戏程序,这究竟是怎么一回事呢?下面由系统城小编给大家介绍一下 ...

  5. 开机弹出“今日看点”和屏幕右下角弹出小广告的解决方法

    <开机弹出"今日看点"和屏幕右下角弹出小广告的解决方法!> 最近几天,我家电脑屏幕右下角经常弹出广告窗口.<腾讯QQ>和<迅雷看看>弹出来的广告 ...

  6. Android通知栏Notification弹出横幅显示的解决方法

    Android通知栏Notification弹出横幅显示的解决方法 参考文章: (1)Android通知栏Notification弹出横幅显示的解决方法 (2)https://www.cnblogs. ...

  7. 如何用计算机弹出ink sans,Win10系统按“W”键弹出INK工作区的解决方法-电脑自学网...

    最近有使用Win10系统的用户反馈,只要不小心按照"W"键就会弹出INK工作区,因为不知道该如何解决而感到十分苦恼.对于这个问题,下面本文就为大家分享Win10系统按"W ...

  8. win10系统cmd模式下输入python弹出Windows应用商店 解决方法

    win10系统cmd模式下输入python弹出Windows应用商店 解决方法 解决方法1: 打开环境变量设置[此电脑->属性->高级系统设置->环境变量] 在变量Path中发现有% ...

  9. Android调用系统群发短信,vivo部分手机弹出“无效的地址”解决方法

    Android调用系统群发短信,vivo部分手机弹出"无效的地址"解决方法 第一次写文章,来试试水 之前项目中有一个需求是获取通讯录联系人信息,并展示出来,然后可以选择一个或者多个 ...

最新文章

  1. 华为员工哀叹:32岁大码农只能在华为等裁,出去薪资没人接得住!出路在哪儿?...
  2. 港科大硕士ICCV 论文涉嫌抄袭,导师回应,二作已申请撤稿
  3. MemCached配置与缓存知识概述
  4. Ubuntu安装OMNet++及各种问题
  5. BZOJ 2045 容斥原理
  6. php中mysqlstat函数,PHP函数mysql_stat介绍
  7. 深入了解epoll 函数
  8. OSI 认证的开源 License 有哪些?
  9. Java中的==符号与equals()的使用(测试两个变量是否相等)
  10. Flowable 6.6.0 Eclipse设计器 - 2.编辑器特性
  11. 前后端开发接口文档模板(登录、注册、项目发布与需求发布)
  12. 抛出 java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to andr异常
  13. skywalking源码分析第二十三篇一扩展篇:全链路压测
  14. 汉诺塔递归算法Java实现
  15. 成长就是不断升级自己的认知
  16. Jeff Dean三执笔:一文看尽2020年谷歌AI重大突破
  17. 计算机ms高级应用科目一 科目二考什么,驾考提前知 | 科目一、科目二、科目三、科目四都考什么?...
  18. cpu平均负载高的几种情况
  19. 用笔记本建立虚拟wifi
  20. win10设置让所有文件夹查看方式都是详细信息

热门文章

  1. 把CNN里的乘法全部去掉会怎样?华为提出移动端部署神经网络新方法
  2. 华科新开源文本识别算法:ASTER与DeepLesion数据集百度云下载
  3. linux+systemc+编译,[转载]linux下systemC的安装编译仿真
  4. 计算机视觉中的Transformer的最新进展!
  5. MATLAB案例学习-基于雷达和摄像头的传感器融合
  6. OCR常见问题(4)
  7. [转]如何处理机器学习中的不平衡类别
  8. android alarmmanager定时任务,AlarmManager 实现定时任务
  9. java多客户端请求响应_Java实现服务器端对多个客户端请求响应
  10. ipython使用oracle,python的os模块(ipython,文件,目录,权限,管理)