编程AOSP Launcher3以隐藏特定应用程序

时间:2017-02-15 18:55:51

标签: java android

我尝试通过在应用来源中添加和更改代码来隐藏应用程序,但每次都失败。

是否可以通过编辑Launcher3源代码隐藏启动器中的特定应用程序?顺便说一句,我正在使用AOSP构建,并希望将第三方开源应用程序集成到“设置”中,以便只能从“设置”中打开它。

1 个答案:

答案 0 :(得分:0)

浏览原始的Launcher3源代码,您将在AppFilter下找到/src/com/android/launcher3文件。从文件名本身来看,我们知道这是一个过滤应用程序的类。顾名思义,有一种称为shouldShowApp的方法是考虑是否需要显示应用程序。

在此之后,AllAppsList.java在add方法中使用此方法。显然,当mAppFilter.shouldShowApp返回false时,它将直接返回,从而使应用程序从应用程序列表中排除,这将不会显示。

因此, 最简单的方法是,只需将AppFilter.java中的行更改为return !"com.google.android.gm".equals(app.getPackageName());,此代码段将确保不显示包“ com.google.android.gm”(Gmail)在启动器中。

package com.android.launcher3;

import android.content.ComponentName;
import android.content.Context;

public class AppFilter {

    public static AppFilter newInstance(Context context) {
        return Utilities.getOverrideObject(AppFilter.class, context, 
           R.string.app_filter_class);
    }

    public boolean shouldShowApp(ComponentName app) {
        return !"com.google.android.gm".equals(app.getPackageName());
    }
}

希望获得帮助。