【Launcher3系列】 Android 11 Launcher3 在workspace中隐藏单个APP

1. 概述

Android系统的Launcher改造在国内算是一个不算很低频的需求,尤其是相当多的三方硬件设备以及部分手机厂商的个性化ROM等,受限于国内整体的开源环境,网上能找到相关的开发资源并不多,最近公司有相关业务需求的开发,就自己涉及到的改造点作一些分享。

我也在网上找过很多博文,如何隐藏单个APP的图标展示,提供的修改方法包括更改AppFilter的shouldShowApp方法修改LoadTask的loadAllApps()方法&添加PackageUpdatedTask的excute方法过滤,但实测发现并不能满足我的要求,尤其是在workspace区域已有该图标的前提下,无法隐藏。经过自己的摸索及追踪源码成功解决。涉及到的改动点如下:

  • 在往workspace区域添加item时,忽略掉需要隐藏的APP,以解决初次加载时的隐藏。

  • 绑定workspace的时机,移除需要隐藏的APP,以解决更新时对该图标的隐藏。

2. 涉及到的类及接口等

主要是改动添加item的任务类AddWorkspaceItemsTask和绑定workspace的result类BaseLoaderResults

com.android.launcher3<

版权声明:本文为u012463124原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。