如何在android中可见/不可见启动器图标?
Posted
技术标签:
【中文标题】如何在android中可见/不可见启动器图标?【英文标题】:How to visible/invisible launcher icon in 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 现在我看到了……我需要换眼镜了 :) 【参考方案1】:试试这个:
1 .修改 AndroidManifest.xml 中的 MainActivity 部分,从中删除,与 Intent-filter 部分中的 MAIN 类别一致
<category android:name="android.intent.category.LAUNCHER" />//DELETE THIS LINE
为您的应用、每个图标创建<activity-alias>
。像这样
<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 不存在。 这行得通,但是,我有一个需要运行的自动启动应用程序,当我这样做时,它不会运行以启用接收器,关于如何执行此操作的任何线索?以上是关于如何在android中可见/不可见启动器图标?的主要内容,如果未能解决你的问题,请参考以下文章
在 Android Tv 中,如何实现图标始终可见的标题(导航抽屉)
如何检测软件键盘在 Android 电视(消防电视)上是不是可见?
Android:manifest targetSdkVersion 更改导致:图标不可见,小部件不再工作,并且无法访问数据