如何从我的应用程序中隐藏其他应用程序的图标

时间:2017-12-09 07:22:02

标签: android

我正在申请。我的应用程序获取所有已安装的应用我想要的是隐藏一些选定的应用程序的应用程序图标。对于隐藏应用程序图标,我使用下面的代码,这是按预期工作。

 public void hideApp(String className) {
    PackageManager p = getPackageManager();
    ComponentName componentName = new ComponentName(this, className);
    p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}

注意:我发送的是具有完整pkg名称的类名。这完全隐藏了我的应用程序图标

但是,当我尝试隐藏其他带有完整包装名称的应用程序图标时,会出现例外情况,如下所述

IllegalArgumentException: Component class com.whatsapp.Main does not exist in com.example.abdulwaheed.testingproject

我的问题是我做错了什么?我错过了什么?它甚至可能吗?

1 个答案:

答案 0 :(得分:0)

我没有这方面的经验,但我至少可以试着指出你正确的方向。

我认为问题出在这一行:

ComponentName componentName = new ComponentName(this, className);

根据documentation

  

这里封装了两条信息来识别一个组件:它所在的包(String),以及该包内的类(String)名称。

因此,实际上需要您尝试隐藏的应用程序的程序包名称,而不是"这个",它指的是您的活动。然后,您将为其第二个变量输入className。

我希望这有帮助!