文档章节

在Android手机上实现应用屏蔽

Cundong
 Cundong
发布于 2014/06/29 16:18
字数 351
阅读 2842
收藏 20
点赞 0
评论 4

在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基础之应用程序组件

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

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

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

紫地瓜
2012/10/26
0
0
Android P 版本号为 9,第三个开发者预览版有这些变化

近日,Google 如期放出了 Android P 的第三个开发者预览版(以下简称 DP3)。DP3 主要面向应用开发者,将该版本操作系统的 API 等级正式确定为 API level 28,开发者可以借助相关的 SDK 面向...

h4cd
06/10
0
0
那些年Android黑科技③:干大事不择手段

“我在发抖么? 你开什么玩笑。我只是在跳愉快的尬舞。 暗影是不会向邪恶势力低头的。 万岁(≧▽≦)/!!” -- 来自暗世界android工程师 前言: 本篇是本系列的最后一个篇章。其实这些活儿也...

猴亮屏
2017/10/24
0
0
dialog,activity 屏蔽Home键详解

相信在Android应用上,很多时候逻辑是需要屏蔽Home键的,但这个用户体验是否需要,就看各位的需求了。 一般的方法屏蔽Home键,大家一定看过不少文章了。我总结一下,先说一下一般情况下Activ...

雨焰
2013/07/11
0
0
解决小米手机无法收到开机广播的问题

今天在做个推推送的时候遇到了小米手机无法收到开机广播的问题。 <receiver android:name="com.XXXXXXXXXXX > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED......

今日竹石
2015/08/05
0
0
如何从Windows应用发送通知消息给Android应用

手机应用可以作为桌面应用的辅助工具,用来接收桌面应用的状态信息。这里介绍如何实现一个简单的Android程序用于接收Windows扫描仪应用的工作状态。 参考:How to Push Notifications to An...

yushulx
2014/10/13
0
0
Android特色开发之语音识别

本文节选于机械工业出版社推出的《Android应用开发揭秘》一书,作者为杨丰盛。本书内容全面,详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发...

yarin
06/26
0
0
Android_SDK模拟器的ROOT方法

11-12月份入手了N90,开始正式接触安卓系统,之前一直使用的塞班。总的感觉下来,安卓系统在手机上还是不错,对平板而言使用起来还是很牵强,软件虽然很多,但要玩转还是比较麻烦。目前我使用...

AlexZhuang
2012/04/12
0
0
Android 信号处理面面观

Android 信号处理面面观 首先澄清,本文讨论的信号是 Linux 软中断信号,而不是手机状态条里面用于显示当前手机通信强度的那个信号。 本文是 增量型博客,内容会不断更新,请改话题感兴趣的朋...

LiSteven
2013/01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
2
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
1
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
161
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部