安卓开发——锁定软件——输入密码后重复弹出输入密码窗口的解决方法
在判断输入的密码正确后,发送一个广播
//进行输入密码的验证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);}}}
安卓开发——锁定软件——输入密码后重复弹出输入密码窗口的解决方法相关推荐
- 【windows系统】360浏览器按F12弹出独立窗口的解决方法(图文)
一.打开浏览器设置 二.打开高级设置,点切换内核 三.选择对应的网站地址删除即可
- maya2018点输入序列号后不弹出激活页如何解决
maya2018点输入序列号后不弹出激活页如何解决 作者在maya2018的过程中由于失误,使得第一次激活没有成功,然后我再点击maya2018的图标以后,想继续重新激活,但是每次点击输入序列号以后就 ...
- 关于U盘无法弹出的几种解决方法
U盘无法弹出的N种解决方法 [转自PChome.net] 大家是不是经常遇见"现在无法停止'通用卷'设备.请稍候再停止该设备."的问题?经常插上u盘,mp3,移动硬盘等设备,想要安 ...
- win7运行c语言程序,win7打开程序弹出错误0xc000005的解决方法
有很多win7旗舰版用户反馈,在打开一些程序时候会弹出错误0xc000005的提示导致程序无法打开,比如帝国时代3.穿越火线.三国志13等游戏程序,这究竟是怎么一回事呢?下面由系统城小编给大家介绍一下 ...
- 开机弹出“今日看点”和屏幕右下角弹出小广告的解决方法
<开机弹出"今日看点"和屏幕右下角弹出小广告的解决方法!> 最近几天,我家电脑屏幕右下角经常弹出广告窗口.<腾讯QQ>和<迅雷看看>弹出来的广告 ...
- Android通知栏Notification弹出横幅显示的解决方法
Android通知栏Notification弹出横幅显示的解决方法 参考文章: (1)Android通知栏Notification弹出横幅显示的解决方法 (2)https://www.cnblogs. ...
- 如何用计算机弹出ink sans,Win10系统按“W”键弹出INK工作区的解决方法-电脑自学网...
最近有使用Win10系统的用户反馈,只要不小心按照"W"键就会弹出INK工作区,因为不知道该如何解决而感到十分苦恼.对于这个问题,下面本文就为大家分享Win10系统按"W ...
- win10系统cmd模式下输入python弹出Windows应用商店 解决方法
win10系统cmd模式下输入python弹出Windows应用商店 解决方法 解决方法1: 打开环境变量设置[此电脑->属性->高级系统设置->环境变量] 在变量Path中发现有% ...
- Android调用系统群发短信,vivo部分手机弹出“无效的地址”解决方法
Android调用系统群发短信,vivo部分手机弹出"无效的地址"解决方法 第一次写文章,来试试水 之前项目中有一个需求是获取通讯录联系人信息,并展示出来,然后可以选择一个或者多个 ...
最新文章
- 华为员工哀叹:32岁大码农只能在华为等裁,出去薪资没人接得住!出路在哪儿?...
- 港科大硕士ICCV 论文涉嫌抄袭,导师回应,二作已申请撤稿
- MemCached配置与缓存知识概述
- Ubuntu安装OMNet++及各种问题
- BZOJ 2045 容斥原理
- php中mysqlstat函数,PHP函数mysql_stat介绍
- 深入了解epoll 函数
- OSI 认证的开源 License 有哪些?
- Java中的==符号与equals()的使用(测试两个变量是否相等)
- Flowable 6.6.0 Eclipse设计器 - 2.编辑器特性
- 前后端开发接口文档模板(登录、注册、项目发布与需求发布)
- 抛出 java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to andr异常
- skywalking源码分析第二十三篇一扩展篇:全链路压测
- 汉诺塔递归算法Java实现
- 成长就是不断升级自己的认知
- Jeff Dean三执笔:一文看尽2020年谷歌AI重大突破
- 计算机ms高级应用科目一 科目二考什么,驾考提前知 | 科目一、科目二、科目三、科目四都考什么?...
- cpu平均负载高的几种情况
- 用笔记本建立虚拟wifi
- win10设置让所有文件夹查看方式都是详细信息
热门文章
- 把CNN里的乘法全部去掉会怎样?华为提出移动端部署神经网络新方法
- 华科新开源文本识别算法:ASTER与DeepLesion数据集百度云下载
- linux+systemc+编译,[转载]linux下systemC的安装编译仿真
- 计算机视觉中的Transformer的最新进展!
- MATLAB案例学习-基于雷达和摄像头的传感器融合
- OCR常见问题(4)
- [转]如何处理机器学习中的不平衡类别
- android alarmmanager定时任务,AlarmManager 实现定时任务
- java多客户端请求响应_Java实现服务器端对多个客户端请求响应
- ipython使用oracle,python的os模块(ipython,文件,目录,权限,管理)