文档章节

在Android手机上实现应用屏蔽

Cundong
 Cundong
发布于 2014/06/29 16:18
字数 351
阅读 2938
收藏 20

在Android手机上,很多App都实现了应用屏蔽功能。比如,360手机卫士可以在用户启动其他应用程序的时候弹出一个验证窗口来实现应用程序的加密,「我要当学霸」、「我要早睡」、「番茄土豆」可以在用户设置的时间段里在用户打开其他应用程序的时候弹出一个不可操作页面。

研究了一下这几个应用,发现实现原理其实挺简单的:通过一个后台Service来监控位于当前Task最顶端的Activity名字是否位于要屏蔽的List中,如果位于task最顶部的Activity(即用户刚刚打开的那个Activity)包含在需要屏蔽的List中,则弹出一个不可操作Activity,用户在当前Activity只能做制定的事情,比如点击Back返回到HOME界面,或者只能输入密码,或是必须发布一些自虐内容到微信朋友圈等等。

获取当前Task最顶端的Activity的方法很简单,Android已提供了Api:

ActivityManager mActivityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ComponentName topActivity = mActivityManager.getRunningTasks(1).get(0).topActivity;

注:

调用该Api,需要配置 

 <uses-permission android:name="android.permission.GET_TASKS" />

权限。

在屏蔽页,点击Back键,回到HOME页:

Intent MyIntent = new Intent(Intent.ACTION_MAIN);
MyIntent.addCategory(Intent.CATEGORY_HOME); 
startActivity(MyIntent);


下载:demo


© 著作权归作者所有

Cundong
粉丝 185
博文 28
码字总数 30973
作品 0
海淀
私信 提问
加载中

评论(4)

Cundong
Cundong 博主

引用来自“吴大壮”的评论

下载了demo,为什么我点击了需要屏蔽的程序还是可以打开呢?

引用来自“陈哈哈coding”的评论

可能是3个原因导致的 1、是否设置了要屏蔽的软件 2、Demo中用来监控task的Service可能被杀掉 3、在Android5.0,获取task列表的方法失效。详见https://github.com/cundong/AppBlock/issues/1
感谢你!我去看下api
陈哈哈coding
陈哈哈coding

引用来自“吴大壮”的评论

下载了demo,为什么我点击了需要屏蔽的程序还是可以打开呢?
可能是3个原因导致的 1、是否设置了要屏蔽的软件 2、Demo中用来监控task的Service可能被杀掉 3、在Android5.0,获取task列表的方法失效。详见https://github.com/cundong/AppBlock/issues/1
吴大壮
吴大壮
下载了demo,为什么我点击了需要屏蔽的程序还是可以打开呢?
大飞哥2099
大飞哥2099
mark
Android 4.0 下开关GPS 的问题

@邓凡平 老师,您好!想跟你请教个问题:我在Android 2.3平台下实现了 第三方应用程序 调用系统服务 ,即 开关GPS 卫星定位 的这个功能,可是将这个能在Android2.3 平台下运行的 apk 安装进同...

努力工作蜗牛
2012/12/18
2.4K
4
微信apk微信直接用手机默认浏览器打开 IOS跳转App Store(苹果商店)打开

来源分析 商业分析在微信的使用人数已经高居各通讯APP的榜首的同时,微信成为了我国移动流量最大的平台之一。在次趋势的引导下,很多的商家、体户便抓住了这一机遇,利用微信这个渠道来做产品...

十分矫情
05/09
0
0
微信下载的最佳 方案 安卓调用手机默认浏览器 IOS跳转App Store(苹果商店)

来源分析 商业分析在微信的使用人数已经高居各通讯APP的榜首的同时,微信成为了我国移动流量最大的平台之一。在次趋势的引导下,很多的商家、体户便抓住了这一机遇,利用微信这个渠道来做产品...

wx5ab266084024b
03/20
0
0
Android基础之应用程序组件

Android应用程序由若干个不同类型的组件组合而成,每一个组件具有其特定的安全保护设计方式,它们的安全直接影响到应用程序的安全。Android应用程序组件的主要类型有:活动(Activity),服务...

柳哥
2014/11/28
158
0
android应用开发全程实录-实现甩动拨打和挂断电话

android应用开发全程实录-实现甩动拨打和挂断电话 今天继续给大家带来《Android应用开发全程实录》中的章节,这部分是讲传感器中的一个实例。 通过上面的例子我们学会了如何获得某种类型的传...

紫地瓜
2012/10/26
281
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
12
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部