点击上方“AirPython”,选择“置顶公众号”

第一时间获取 Python 技术干货!

阅读文本大概需要 8 分钟。

智能手机越来越普及了,不仅能满足老人需要的基础功能,还能给他们带来更多娱乐方式。

相信大部分的人,现在给老人购买新机,都会优先购买智能手机。

由于智能机操作的复杂性,很多老年人的手机使用一段时间之后,不知不觉间,下载了一大堆垃圾软件,内存占用越来越大,机器越用越卡。

那有什么办法可以阻止用户下载垃圾软件,保证手机系统的纯净性呢?

1、最佳方案

起初,想到的方案是定时去卸载应用,如果是 Root 后的设备,可以利用 pm 命令去静默卸载,大部分非 Root 设备只能使用 Intent 可视化卸载,显得效率极其的低下。

后来,想到一种最方便、稳定的方式,就是使用无障碍服务,阻止应用的安装。

首先,新建一个无障碍服务。

接着,对系统默认的应用安装界面进行页面分析,编写配置文件,设置 packageNames;需要注意的是,有些产商对应用安装界面进行了定制化,以原生、小米、魅族为例,packageNames 就需要指定多个。

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"android:accessibilityEventTypes="typeWindowStateChanged"android:accessibilityFeedbackType="feedbackGeneric"android:accessibilityFlags="flagDefault"android:canRetrieveWindowContent="true"android:description="@string/desc"android:notificationTimeout="100"android:packageNames="com.android.packageinstaller,com.miui.packageinstaller,com.android.packageinstaller/.FlymePackageInstallerActivity" />

重写 onAccessibilityEvent() 函数,当页面发生变化,接受到事件的时候,立即执行全局返回操作。

performGlobalAction(GLOBAL_ACTION_BACK);

2、应用商店

一般来说,系统内置的应用商店默认是静默快速安装,不会出现应用安    装界面,所以上面的阻止安装操作会失效。

事实上,下载垃圾软件的场景大部分来自于一些新闻视频类 App,被诱导点击操作导致。

并且,应用商品 App 提供了一个入口,方便我们安装其他应用等,比如:微信、抖音等。

3、应用过滤进阶

步骤 1 默认会阻止所有的非应用市场 App 的安装,为了保证功能的完整性,需要自定义过滤的应用。

首先,可以编写一个应用列表界面,用来展示所有的第三方应用App,拿到他们的应用名称、应用包名、应用图标。

选择需要过滤的应用,检测到系统安装界面事件的时候,通过界面的元素 ID 拿到待安装应用的名称 ,如果包含在过滤列表数据中,则正常安装操作;否则,阻止应用安装。

这部分涉及的内容过于复杂,所以不展开说明,对细节有兴趣的可以参考文末的完整源码。

private void processAccessibilityEnvent(AccessibilityEvent event)
{String[] phoneAttrs = AppUtil.getPhoneAttrs();if (event.getSource() != null && TextUtils.equals(event.getClassName(), phoneAttrs[0])){try{Thread.sleep(3000);} catch (InterruptedException e){e.printStackTrace();}//获取应用名称String app_name = findViewContentByID(phoneAttrs[1]);Log.d("xag", "app_name:" + app_name);//是否存在保留应用中boolean isExist = false;if (selectedApps != null && 0 < selectedApps.size()){for (AppBean appBean : selectedApps){if (TextUtils.equals(appBean.getApp_name(), app_name)){isExist = true;}}}//如果不在保留应用列表,就不容许安装if (!isExist){Log.d("xag", "不在保留应用列表,不容许安装!");performBackClick();} else{Log.d("xag", "在保留应用列表,容许安装!");}}
}

4、重启有效

为了保证无障碍服务能一直运行,特别是针对系统重启。

针对低版本设备,重启设备之后,无障碍服务会自动运行。

高版本的设备,需要手动打开应用自启开关。

如果是魅族手机,需要利用手机管家 App 为应用设置应用权限为:容许后台运行。

5、其他说明

上面这个服务首次安装需要进入无障碍服务中手动开启。

我已经将全部源码上传到后台,关注公众号后回复「 老人 」即可获得全部源码。

如果是小米手机,可以直接回复「 小米手机 」获取 APK 直接体验。

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。

推荐阅读

Python  帮你批量生成手机号码

短视频篇 | Python  带你进行短视频二次创作

Python 还你一块纯洁无暇的移动硬盘

THANDKS

- End -

自动化篇 | 再也不用担心老人们用智能机了相关推荐

  1. python实现抢劵_用Python实现微信自动化抢红包,再也不用担心抢不到红包了

    1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...

  2. 看完这篇文章再也不用担心代码格式不对无法合并了

    本文由RT-Thread论坛用户@RTT_逍遥原创发布:https://club.rt-thread.org/ask/article/3121.html GITHUB仓库: git_auto_scri ...

  3. 自从看了这篇文章,妈妈再也不用担心我的学习了!!

    Vue部分小结 首先理清思路 代码展示 1.v-if以及{{}}代码展示 <body><div id="app" ><h1 v-bind:class= ...

  4. 保姆级神器 Maven,再也不用担心项目构建搞崩了

    今天来给大家介绍一款项目构建神器--Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现:它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的.流行的构建工具,从此以后,再 ...

  5. git for windows_手把手教会舍友玩 Git (包教包会,再也不用担心他的学习)

    作 者: BWH_Steven 原文链接:https://www.cnblogs.com/ideal-20/p/13644420.html 舍友长大想当程序员,我和他爷爷奶奶都可高兴了,写他最喜欢的喜 ...

  6. rm: 无法删除swap: 不允许的操作_safe-rm老板再也不用担心我删库跑路啦[视频]

    saferm 老板再不怕我删库跑路https://www.zhihu.com/video/1177717527541731328 在 linux 上,使用 rm 是一件非常危险的事情(最近又有朋友遇到 ...

  7. 超简单的位运算---再也不用担心看不懂题解了

    超简单的位运算---再也不用担心看不懂题解了 写在前面 1.原码.反码与补码------整形在计算机中的储存 2.移位操作符 3.位操作符 4.小练手 写在最后 写在前面 大家好,这里是风扇的小小笔记 ...

  8. 用日记APP来记录生活,再也不用担心无法坚持写日记

    很多人在小时候都被家长或老师要求每天写日记,那么你坚持下来了吗?有不少小伙伴自己已经有了在开学前狂补几十篇日记的阴影,所以早就不写日记了.如果你以为现在写日记记录生活的方式还和以前一样,那你就out了 ...

  9. Java实现印刷体转手写体—妈妈再也不用担心我被罚抄作业了

    Java实现印刷体转手写体-妈妈再也不用担心我被罚抄作业了 文章目录 Java实现印刷体转手写体-妈妈再也不用担心我被罚抄作业了 缘起 开始开发 测试效果 开源地址和总结 郑重声明 因本文中涉及到爬虫 ...

最新文章

  1. 集成电路:迎国产替代浪潮,设计领域机会凸显
  2. SqlServer_合并多个递归查询数据(CTE)
  3. 周报_2012第51周(2012/12/16-2012/12/22)
  4. 在Eclipse RCP中使用Spring AOP/ProxyFactory的问题
  5. 小区社交应用:如何打破近在眼前的物理障碍和陌生感?
  6. hashCode和equals方法的关系
  7. 一个给计算机写程序的人是谁,如果计算机是中国人发明的 写代码会是一种什么情况 程序员看了都头疼...
  8. POJ 1743 (后缀数组+不重叠最长重复子串)
  9. wurfl_比较OpenDDR与WURFL
  10. VS配合VSS时,编译报错:未能向文件“....csproj.FileListAbsolute.txt”写入命令行,对路径的访问被拒绝。...
  11. 手机文件传云服务器,手机云服务器传文件
  12. python获取月份字符串_python 时间字符串与日期转化
  13. 软件开发知识体系(一)
  14. 私塾 java_JAVA私塾
  15. 软考网络规划设计师备考经验分享
  16. 保险丝的作用,参数及选型应用,你真的懂了吗——电子元器件篇
  17. Vue进阶(八十二):updated 应用详解
  18. access vba 用代码隐藏隐藏左边导航栏
  19. xshell 基本操作命令
  20. 用计算机搞音乐,用电脑键盘做音乐

热门文章

  1. 日本最大社交网站Mixi宣布进军中国网络市场
  2. 超级计算机搞笑图,搞笑图片幽默段子笑话:哥们,你的脚上下差距太大了吧,黑白分明...
  3. 趣图 | 这大概就是人狠话不多
  4. 招聘一位优秀的工程师
  5. 视频消重什么意思?自媒体视频怎么消重?老师分享小技巧
  6. 江南爱软装十大品牌 软装那些你不知道的事
  7. 暴雨高发季,内涝监测预警系统助力城市抗洪防涝
  8. IQVIA医药咨询随笔杂谈
  9. 上海地铁1号线两列车侧碰
  10. 赶紧收藏起来,上个月收益13890,做自媒体需要知道这2点