自动化篇|再也不用担心老人们用智能机了(代码片段)

author author     2022-12-12     496

关键词:

技术图片

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

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

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

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

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 -

一键搞定cookie跨域问题,麻麻再也不用担心我拿不到cookie了(代码片段)

开发环境下用来自动获取cookie的chrome插件。输入源站点和目标站点以及cookieName,便可以自动获取和监听cookie的变化并实时更新。Achromeplug-inusedtoautomaticallyobtaincookiesinthedevelopmentenvironment.Byenteringthesourcesite,targetsiteandcookiename,you 查看详情

饭碗空空猫猫流泪用haaspythondiy一个宠物自动投食器再也不用担心主子挨饿(代码片段)

来这里发现更多有趣案例HaaS趣味案例1、简介  自动投食器是一种可以自动投喂宠物粮的设备,致力于解决当家中无人时宠物无法喂养的问题。该设备具备云端接入能力,可通过手机进行控制,拥有两种投喂模式可... 查看详情

idea代码自动补全,良心插件推荐:codota,再也不用担心写不出代码了。

特色如何安装?代码补全示例代码本地代码学习这款插件就是Codota。基于AI技术,通过对大量开源的项目学习,帮助开发者提供更可靠的智能推荐,让编程变得更easy!官网:https://www.codota.com看官方发现ÿ... 查看详情

ppt《挑战用chatgpt完成流水线操作的ppt,再也不用担心每周肝组会报告ppt了#人工智能#chatgpt应用领域快学起来!!!》-知识点目录(代码片段)

《挑战用chatgpt完成流水线操作的ppt,再也不用担心每周肝组会报告ppt了#人工智能#chatgpt应用领域快学起来!!!》1.PPT文字模板说明(Prompt)我的名字叫做【haozi】,帮我制作一篇内容为《如何做好一名游戏... 查看详情

不用写一行python代码,就可以用matplotlib绘图,妈妈再也不担心我不会作图了!(代码片段)

sviewgui介绍sviewgui是一个基于PyQt的GUI,用于csv文件或Pandas的DataFrame的数据可视化。此GUI基于matplotlib,您可以通过多种方式可视化您的csv文件。主要特点:Ⅰ散点图、线图、密度图、直方图和箱线图类型;Ⅱ标记大... 查看详情

不用写一行python代码,就可以用matplotlib绘图,妈妈再也不担心我不会作图了!(代码片段)

本文禁止任何人转载!sviewgui介绍sviewgui是一个基于PyQt的GUI,用于csv文件或Pandas的DataFrame的数据可视化。此GUI基于matplotlib,您可以通过多种方式可视化您的csv文件。主要特点:Ⅰ散点图、线图、密度图、直方图和... 查看详情

老司机推荐:再也不用担心cc来袭

当前是所有游戏都开始向网络进军的时代。棋牌游戏是当下最为火爆的游戏之一,竞争当然也是日愈激烈。游戏同行之间互相争锋相对,相互攻击也是在所难免的。某些游戏运营商服务器被CC攻击瘫痪,一时损失数以万计的客户... 查看详情

看完这篇文章再也不用担心代码格式不对无法合并了(代码片段)

本文由RT-Thread论坛用户@RTT_逍遥原创发布:https://club.rt-thread.org/ask/article/3121.htmlGITHUB仓库:git_auto_script欢迎START和提issue。有好的建议可以PR或者提issue。一、简介你是否会遇到过忘记使用formatting脚本来整理下代码,... 查看详情

机器学习pai为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据代码)

背景最近互联网上出现一个热词就是“freestyle”,源于一个比拼rap的综艺节目。在节目中需要大量考验选手的freestyle能力,freestyle指的是rapper即兴的根据一段主题讲一串rap。freestyle除了考验一个人rap的技巧,其实我觉得最... 查看详情

nginx一键配置方法,再也不用担心我的nginx配置了(代码片段)

Nginx做为开发者的神器,据2021年8月web服务器排行榜,nginx占据了30%的流量稳居第一,相信大部分程序员都不会陌生.相信大部分的开发人员都经历过配置Nginx的过程,每次配置都是要各种查查查的过程,而且经常要配置个半天才能配置完... 查看详情

erc20:从入门到飞起,妈妈再也不用担心我不会写token合约了(代码片段)

ERC20:从入门到飞起,妈妈再也不用担心我不会写Token合约了点击跳转至本项目Github仓库地址由于篇幅有限,本博客将围绕ERC20核心展开介绍,文章内容尽量做到通俗易懂,但其中不可避免地可能涉及一些新手... 查看详情

再也不用担心了

Java程序员工作中遇到最多的错误就是空指针异常,无论你多么细心,一不留神就从代码的某个地方冒出NullPointerException,真是令人头疼。到底怎么避免空指针异常?看完这篇文章,可以帮助你。1.对象设置默认值Objectobj=newObject();... 查看详情

有了这个插件,再也不用担心代码不合规范了

工作这么多年,有个软件一直在用,那就是IDEA,这是宇宙最好用的JavaIDE,没有之一!IDEA的开放能力做的还不错,可以添加很多插件,让我们的很多开发工作更加便捷。我装的插件其实没几个,但... 查看详情

课堂氛围++,小组pk小程序,再也不用担心没人回答问题了!(代码片段)

灵感来源: 听隔壁组美女老师的公开课,课上利用小组pk,黑板上记“正”字的方式活跃课堂气氛。于是博主写了个小程序实现小组pk,方便上课划水(不是)。程序功能: 本程序可根据各组同学回... 查看详情

课堂氛围++,小组pk小程序,再也不用担心没人回答问题了!(代码片段)

灵感来源: 听隔壁组美女老师的公开课,课上利用小组pk,黑板上记“正”字的方式活跃课堂气氛。于是博主写了个小程序实现小组pk,方便上课划水(不是)。程序功能: 本程序可根据各组同学回... 查看详情

妈妈再也不用担心爬虫被封号了!手把手教你搭建cookies池(代码片段)

很多时候,在爬取没有登录的情况下,我们也可以访问一部分页面或请求一些接口,因为毕竟网站本身需要做SEO,不会对所有页面都设置登录限制。但是,不登录直接爬取会有一些弊端,弊端主要有以下两点。设置了登录限制的... 查看详情

idea代码自动补全,良心插件推荐:codota,再也不用担心写不出代码了。

特色如何安装?代码补全示例代码本地代码学习这款插件就是Codota。基于AI技术,通过对大量开源的项目学习,帮助开发者提供更可靠的智能推荐,让编程变得更easy!官网:https://www.codota.com看官方发现ÿ... 查看详情

❤️万字pythonmysql从入门到精通详细教程❤️再也不用担心学不会数据库了❤️(代码片段)

文章目录前言⭐集合三万字基础教程⭐一、SQL详细教程二.mysql入门详细教程⭐转pythonmysql⭐三、PythonMySQL入门连接3.1基本环境准备3.2连接四、PythonMySQL创建表4.1创建数据库4.2检查数据库是否存在五、PythonMySQL插入表5.1插入表格5.2插... 查看详情