如何在Android设备上隐藏任何应用程序而无需对设备进行root?

3
我正在开发一款安卓应用程序。我想要隐藏我的安卓设备中的任何应用程序图标(如whatsapp等),并且我希望通过按下某些数字(例如456#)来启动我的应用程序。是否有办法实现这一点?
我知道如何隐藏我的应用程序图标,但是我想搜索如何隐藏其他应用程序图标。
请帮忙,提前致谢。

1
请查看下面的帖子,其中提供了隐藏应用程序图标的指针。https://dev59.com/aWoy5IYBdhLWcg3wq_3O - pshirishreddy
我知道如何隐藏自己的应用程序,但我想要隐藏任何一个应用程序图标。 - Sanket990
编写自定义启动器,仅显示您想要的应用程序。隐藏其他应用程序。 - Adnan Mulla
2个回答

6

您在一个问题中提出了许多问题。让我筛选一下。

我知道如何隐藏我的应用程序图标,但我想搜索如何隐藏其他应用程序图标。

基本上,您只需要传递该应用程序的包名称和启动器活动。

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName("YOUR_PACKAGE_NAME", "YOUR_PACKAGE_NAME.LAUNCHER_ACTIVITY_NAME");
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

如何找到已安装应用程序的启动器活动? 在下面的代码中,您将获得所有已安装应用程序的启动器活动。
final PackageManager pm = getPackageManager();

Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

List < ResolveInfo > appList = pm.queryIntentActivities(mainIntent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));

for (ResolveInfo temp: appList) {
    Log.v("my logs", "package and activity name = " + temp.activityInfo.packageName + "    " + temp.activityInfo.name);
}

我希望通过按下一些数字来启动我的应用程序,例如456#。请参考以下链接:查看参考链接。现在你已经几乎做到了你想要的,请试一试并让我知道结果。

0

隐藏或取消隐藏任何应用程序的最简单方法是通过 cmd,您只需输入一个命令和缓冲区即可完成。

  * for disable in Kitkat

String cmd = "pm disable" + packageName; Shell.SU.run(cmd);

  • 在Kitkat中启用

    String cmd = "pm enable " + packageName;

    Shell.SU.run(cmd);

    • 在lollipop中隐藏

    String cmd = "pm hide " + packageName;

    Shell.SU.run(cmd);

  • 在lollipop中取消隐藏

    String cmd = "pm unhide " + packageName;

    Shell.SU.run(cmd);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接