【问题标题】:Hide and Display Application Icon隐藏和显示应用程序图标
【发布时间】:2023-03-22 15:20:01
【问题描述】:

我希望用户能够隐藏和显示应用程序启动器图标。 我在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 升级,因为在禁用此组件后操作系统将找不到软件包并且无法重新安装它,除非该应用程序未手动卸载(这不是用户友好的行为)"

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

【问题讨论】:

  • 您希望用户在主屏幕上隐藏图标吗?或者从主屏幕、应用程序抽屉以及其他任何可能找到的地方?如果是后者而不是前者,您如何期望用户在隐藏后能够访问/启动您的应用程序?一些秘密画廊/浏览器使用计算器图标来隐藏他们的应用程序,然后用户必须进入计算器,然后输入数字和命令的秘密序列来启动底层应用程序。您可能需要考虑为您的应用做类似的事情。
  • 感谢您的回复。如果您看到上面的第二个链接,我将允许用户通过拨号程序启动应用程序。我希望从上述所有内容中隐藏该应用程序。

标签: android application-icon


【解决方案1】:

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

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

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

除了那个解决方案,其他部分解决方案是:

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

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

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

【讨论】:

    【解决方案2】:

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

    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);
    

    【讨论】:

    • 对不起,但这并不能回答问题,而且我的问题中已经显示了部分问题。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多