隐藏和显示应用程序图标

时间:2017-07-28 22:30:14

标签: android application-icon

我希望用户能够隐藏并显示Application Launcher图标。 我在https://www.nexsoftsys.com/articles/how-to-hide-application-launcher-lcon-in-android.html找到了一个解决方案 我也发现了同样的解决方案 Hide application icon

但是,在后一个链接中,它表示此代码出现在上述两个

PackageManager pm = getApplicationContext().getPackageManager(); 
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

“将使应用程序无法从Google Play升级,因为操作系统在此组件禁用后无法找到该程序包并且无法重新安装它,除非该应用程序未安装manullay(这不是用户友好的行为) )“

我试图发现这是否属实,但没有运气。 有人可以回答这个问题吗? 非常感谢提前

3 个答案:

答案 0 :(得分:0)

您可以使用以下代码隐藏应用图标:

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); 
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

使用以下代码显示应用图标:

PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

答案 1 :(得分:0)

你要求我们证明是消极的。

除非在Android文档中明确表达了否定,否则在Google Play的服务条款中明确禁止发布者/开发者(这似乎不是,但我是&m; m不是律师),实际上很难证明特定的Android功能不存在。

我知道,唯一适用于所有Android手机的解决方案是创建自己的自定义launcher。使用用户安装并制作主要启动器的custom启动器,您可以隐藏任何您想要的应用程序,甚至是自己。

除了这个解决方案之外,其他部分解决方案将是:

  1. 仅限三星和索尼手机,您可以使用Samsung Knox API和Sony专有API。如果您的申请属于商业性质,则需要为此付钱。

  2. 在三星手机上,还可以向用户提供手动隐藏应用程序图标的说明。

  3. 如果您的应用实际上是基于电话的,听起来就是这样,您可以考虑使用Twilio或Voxeo等服务将其功能迁移到云端。这样,用户只需要将电话号码添加到他的收藏夹/快速拨号,而无需安装任何东西,您可以根据需要随时更新基于云的应用程序,而无需更新电话。也许,您甚至可以使用运营商specific API的功能来增强基于云的应用程序的功能。

答案 2 :(得分:0)

由于我们无法了解Google Play(专有)如何升级特定应用,因此我们无法为此提供任何合理的推理。这取决于Google Play如何升级应用程序/添加新补丁。确认这一点的唯一方法是询问之前已经完成此操作的人。这个question要求相同,一位开发人员确认它有效。答案被接受了。

我的猜测是:目前,您必须禁用启动器组件来隐藏应用程序。这并不意味着禁用其他组件。其他组件仍然有效。这就是为什么活动组件仍然可以升级的原因。为了安全起见,您的未来升级应该在有源组件中完成。 您也可以为您的应用程序使用别名启动程序组件。类似于this