【问题标题】:How to visible/invisible launcher icon in android?如何在android中可见/不可见启动器图标?
【发布时间】:2013-12-02 13:29:00
【问题描述】:

我正在创建一个应用程序,我需要在其中隐藏图标启动器并根据要求显示图标启动器。我使用下面的代码来隐藏启动器图标。

<category android:name="android.intent.category.LAUNCHER" /> // Remove this line from manifest.xml

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

通过使用这些 sn-p 代码,我只能隐藏应用程序图标。

为了显示我使用了这些代码 sn-p

PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);

PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

但是它们都没有影响,或者我无法以编程方式检索启动器图标。请建议我如何完成这项任务。

提前致谢

【问题讨论】:

  • 我看不出最后两个代码 sn-ps 之间的区别。
  • @gunar : 最后一行代码,你可以看到区别:)
  • @gunar: PackageManager.COMPONENT_ENABLED_STATE_DEFAULT 和 PackageManager.COMPONENT_ENABLED_STATE_ENABLED
  • 现在我看到了……我需要换眼镜了 :)

标签: android eclipse android-layout android-package-managers


【解决方案1】:

试试这个:

1 .修改 AndroidManifest.xml 中的 MainActivity 部分,从中删除,与 Intent-filter 部分中的 MAIN 类别一致

<category android:name="android.intent.category.LAUNCHER" />//DELETE THIS LINE

为您的应用、每个图标创建&lt;activity-alias&gt;。像这样

<activity-alias android:label="@string/app_name" 
    android:icon="@drawable/icon" 
    android:name=".MainActivity"
    android:enabled="false"
    android:targetActivity=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>   
</activity-alias>

以编程方式设置启用或禁用

【讨论】:

  • 谢谢你,但我想在隐藏后显示图标启动器。通过使用您的代码,我只能隐藏启动器图标。
  • 您的回答是告诉如何隐藏图标,但他也提到他已经完成了“如何隐藏图标”。他问,如何找回隐藏图标?
  • 你好,Harshit,我已经检查了你的代码,它工作正常,但是当我用 android:enabled="false" 调用给定的 sn-p 时,它显示一个错误,与 android:enabled="true" 完美配合
  • 新包尚未在系统中注册。在下次尝试前等待 3 秒。在设备 a691bb9 ActivityManager 上启动活动 com.vj.MainActivity:正在启动:Intent { act=android.intent.action.MAIN cat=[ xxx ] cmp=xxxx } ActivityManager:错误类型 3 ActivityManager:错误:活动类 {com.vj/ com.vj.MainActivity} 不存在。
  • 这行得通,但是,我有一个需要运行的自动启动应用程序,当我这样做时,它不会运行以启用接收器,关于如何执行此操作的任何线索?
猜你喜欢
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2015-02-25
相关资源
最近更新 更多