5

我希望用户能够隐藏和显示应用程序启动器图标。我在https://www.nexsoftsys.com/articles/how-to-hide-application-launcher-lcon-in-android.html找到了一个解决方案 我还在 隐藏应用程序图标中找到了相同的解决方案

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

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

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

我试图发现这是否属实,但没有运气。请问有人可以回答这个吗?首先十分感谢

4

3 回答 3

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);
于 2017-09-18T12:31:10.277 回答
0

你要求我们证明是否定的。

除非在 android 文档中明确阐述了该负面因素,或者除非在 Google Play 为出版商/开发者提供的服务条款中明确禁止(似乎并非如此,但我不是律师),否则这实际上非常困难证明某个特定的 Android 功能不存在。

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

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

  1. 仅在三星和索尼手机上,您可以使用三星 Knox API 和索尼专有 API。如果您的应用程序是商业性质的,请为此付费。

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

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

于 2017-09-19T21:46:12.097 回答
0

由于我们无法知道 Google Play(它是专有的)如何升级特定应用程序,因此我们无法对此给出任何逻辑推理。这取决于 Google Play 如何升级应用程序/添加新补丁。确认这一点的唯一方法是询问以前做过的人。这个问题问同样的问题,一位开发人员确认它有效。答案被接受了。

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

于 2017-09-19T22:29:56.327 回答