【Android】做一款类似我要当学霸里的学习监督的APP

  • 日期:2021-10-09 21:29
  • 来源: 未知
  • 浏览:
  • 字体:[ ]

  这个App有一个学习培训监管的作用,如果你运行它的情况下,你将不能应用别的App,为此实现协助人提升主动性,具有监督学习的实际效果。近期和同学做了个小App,恰好有这种作用,因此就而言说它是怎么完成的。

  先说下大家这种小App的作用:学习培训监管的作用(即禁掉别的App的应用) 桌面上宠物(用于给用户提醒的)。

  从图中还可以看得出,当运行大家这种小App时,打开监管作用后,再点一下别的App(如QQ)的情况下,桌面上宠物是会提供一些温馨提醒的,随后再把刚刚你打开的App关掉掉。

  最初想起的是能不能用Activity局部变量,也就是ActivityManager里的一个getRunningTasks()方式 ,启用这一办法也就可以获得当今已经运作中的每日任务栈,而处在栈顶的也就是大家在这个时刻打开的App。大家只需不断载入这一每日任务栈,也就能做到了检测用户打开App的作用了,极致处理。

  接下来没思路了,就到在网上随意搜一些关键字,出来许多blog,有说用getRunningAppProcesses(),首先看下这种办法的详细介绍:

  回到已经运作中的运用进程结合,随后再根据进程寻找相应的包名就可以了。但是回到的结合编码序列并没有任何特殊的排列方法,也就是任意的,那麼咱们该怎么判断哪一个进程才算是刚打开的App建立的呢?

  要不能够 先特定一些应用软件,只需分辨返还的结合里有大家选定的应用软件,那麼就可以分辨是打开了那一个运用。

  要不能够 较为上一时时刻刻回到的结合和这一时时刻刻回到的结合,比照看多了什么进程,少了什么进程也就可以分辨出打开或关上了某一运用。

  好,完成的思路大约拥有,接下来能够 写代码了。当敲完在真机里检测时,发觉无论如何回到的都仅有该使用的信息。

  我检测用的线. 的安卓手机系统,在网上也是有表述说有的手机生产厂家在5.0版本号上就早已削弱了getRunningAppProcesses的管理权限,怪不得只能回到运用自身的信息。可这样一来就又跟第一个思路一样了,这一办法也无法选用了。

  上边二种思路都不好,只有再找思路了,之后在stackoverflow中,不经意间搜到海外一高手的解决方案,他是运用Linux系统软件的系统漏洞,Linux系统软件核心会把process进程信息储存在/proc文件目录下,只需载入到进程信息,就可以依据进程的特性来判定是不是前台接待进程了。这一高手还把它封裝变成个开源软件,另附Github详细地址:。

  这样一来就可以获得到全部的进程信息,但即使取得全部进程信息又要怎么根据进程分辨出用户打开了哪一个App呢?

  进程有一个特性能够 用于区别它是前台接待进程或是后台管理进程,有关这两者之间的差别我并不是很了解,但我猜测,是不是还可以将前台接待进程对比成已经运作中的进程?假如能那样,那麼再运用第2个思路中提及的计划方案,就可以完成检测用户打开App的作用了。

  因此,我便去试试看一下。之后真机检测时,发觉当打开大部分使用时都能够到达期望的实际效果。可是有某些运用不管用户打开是否,总是能被检验到是处在前台接待进程中,之后在网络上发觉有些人那么表述:

  试着了多种方式,自始至终达不上需要的实际效果。一次不经意状况下,在Github搜到极致的解决方法,先另附Github详细地址:。

  你能看见这一高手,对检测运作中的进程开展了十分完整的解读,并且例举了现阶段能完成的各类方式,也分別讲解了分别的优点和缺点。

  归功于这一高手的共享,我将它的新项目clone出来学习培训,最终挑选了方式 五:根据Android无阻碍作用完成。

  到此,检测用户打开App的作用总算能够完成,有点儿不够的是每一次运用必须用户自身受权,很有可能会造成用户抵触,但想想也是,这类涉及到安全系数情况的,假如不通过用户自主受权,就像是有点儿恶意程序的行为了,hhh。

  (小小的调侃:早知有那么个高手得出了那么详尽的详细介绍,我便不需要自已花那么多的时间去各类试着了。哭丧脸)

  好啦,检测用户打开App的作用解决了,那麼剩余的是完成桌面精灵了。这一挺简洁的,也就是悬浮球,仅仅在合理布局文档里换为动态图罢了,而要完成动态图,这儿是采用的也是一个开源软件:android-gif-drawable。

  以后只要当检测到用户打开App时,推送广播节目通告大家的App,作出一些对应的姿势,我要当学霸例如桌面精灵得出温馨提醒、关掉用户打开的App这些。

    关于我们 广告合作 版权声明意见建议 RSS订阅 TAG标签网站地图

    COPYRIGHT 2009 - 2020 自学习网

    本站部分内容摘自网络,若您的文章不愿被本站摘录,请及时通知我们。