android 隐藏系统图标手机如何隐藏应用图标

◇关注京东
◇客户服务
用户数:1506|帖子数:232
设备升级到Android 8.0 (Oreo)以后,在通知栏中可能会有一个来自Android系统的通知图标。通知图标表示后台有应用程序正在运行。要删除此通知图标,您需要在设置菜单中更改通知重要性。
Android 8.0
隐藏Android系统通知
1.找到并点击设置&应用和通知& 应用信息。
2.点击菜单按钮(三个垂直点),然后选择显示系统进程。
3.找到并点击Android系统。
4.点击应用程序通知&在后台运行的应用&重要程度。
5.选择低。
多谢,解决!
亲,想要回复请先哦
多品类齐全,轻松购物
快多仓直发,极速配送
好正品行货,精致服务
省天天低价,畅选无忧下次自动登录
现在的位置:
& 综合 & 正文
如何隐藏android应用图标?
写在课前的话:看帖不回,胸部下垂。
AndroidManifest.xml的&intent-filter&标签里加上:
&data android:host="FlyInfo" android:scheme="com.emergency.flyinfo"&&/data&
这行代码即可。hots里放置的是启动类的名字,scheme里放置的是包名。
【上篇】【下篇】致力于安卓程序开发
Android 如何隐藏应用程序的图标
如果你的应用需要隐藏图标,那么这篇文章接下来的段落对你可能有所帮助。
在找到本文之前,你也许已经尝试过诸如以下的解决方案:
1,AndroidManifest.xml文件中在入口Activity的intent-filter里去掉&category android:name=”android.intent.category.LAUNCHER” /&,或者将LAUNCHER改为DEFAULT
2,在程序中加入下面的代码
显示图片:
&ol class="linenums"&&li class="L0"&&span class="typ"&PackageManager&/span&&span class="pln"& p &/span&&span class="pun"&=&/span&&span class="pln"& getPackageManager&/span&&span class="pun"&();&/span&&span class="pln"&&/span&
&/li&&li class="L1"&&span class="pln"&p&/span&&span class="pun"&.&/span&&span class="pln"&setComponentEnabledSetting&/span&&span class="pun"&(&/span&&span class="pln"&getComponentName&/span&&span class="pun"&(),&/span&&span class="pln"& &/span&&span class="typ"&PackageManager&/span&&span class="pun"&.&/span&&span class="pln"&COMPONENT_ENABLED_STATE_ENABLED&/span&&span class="pun"&,&/span&&span class="pln"& &/span&&span class="typ"&PackageManager&/span&&span class="pun"&.&/span&&span class="pln"&DONT_KILL_APP&/span&&span class="pun"&);&/span&&/li&&/ol&
隐藏图标:
&ol class="linenums"&&li class="L0"&&span class="typ"&PackageManager&/span&&span class="pln"& p &/span&&span class="pun"&=&/span&&span class="pln"& getPackageManager&/span&&span class="pun"&();&/span&&span class="pln"&&/span&
&/li&&li class="L1"&&span class="pln"&p&/span&&span class="pun"&.&/span&&span class="pln"&setComponentEnabledSetting&/span&&span class="pun"&(&/span&&span class="pln"&getComponentName&/span&&span class="pun"&(),&/span&&span class="pln"& &/span&&span class="typ"&PackageManager&/span&&span class="pun"&.&/span&&span class="pln"&COMPONENT_ENABLED_STATE_DISABLED&/span&&span class="pun"&,&/span&&span class="pln"& &/span&&span class="typ"&PackageManager&/span&&span class="pun"&.&/span&&span class="pln"&DONT_KILL_APP&/span&&span class="pun"&);&/span&&/li&&/ol&
PackageManager.COMPONENT_ENABLED_STATE_ENABLED //显示应用图标
PackageManager.COMPONENT_ENABLED_STATE_DISABLED //隐藏应用图标
我用这俩个值来显示和隐藏应用图标有问题,隐藏以后就无法在显示应用图标了,在设置里的所有应用里也找不到了;
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT //显示应用图标
PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
// 隐藏应用图标
将参数值该成这两个值就没有问题了,建议使用这两个值,
3,去掉android:icon=”@drawable/ic_launcher”中的资源啊,等等等等。。。
但是试过了每一种方法之后你都发现起到了作用但是却产生了其他的问题
这里先一个一个的解释下,
如果去掉&category android:name=”android.intent.category.LAUNCHER” /&,就表示app没有启动入口了,这样子确实是解决了不显示图标的效果,但是那样的话我们的应用也运行不了了。头疼~~~
第二种 ,我们来看看android developer 上的说明:
public static final int COMPONENT_ENABLED_STATE_DISABLED
and : This component or application has been explicitly disabled, regardless of what it has specified in its manifest.
意思是,即使你在manifest中声明了这个component或application,当你设置为COMPONENT_ENABLED_STATE_DISABLED时,他们都是不可用的。也就是说,如果你在MainActivity中这样设置了,那么应用图标不会显示,应用也不会运行。
那么,这也是不可行的~~~
第三种就不说了,我觉得是狗急跳墙的做法。
———————————分割线—————————————
接下来我要说的这种方法可以隐藏图标,同是也可以正常启动运行。
在manifest的入口activity里面intent-filter中设置&data&&/data&元素。
&data android:host=”AuthActivity” android:scheme=”com.android.example” /&
注意,android:scheme是大小写敏感的,必须以小写字母开头
也就是这个MainActivity可以响应Uri为com.android.example://AuthActivity的特定 Intent
但是为什么加入这个之后app就不显示图标了呢?
因为我们把app的入口Activity申明为由接收隐士的Intent来启动,这样自然也就不会显示图标了。
好了,如果需要显示图标的话而且也必须响应上述Uri的话,那么我们可以在该Activity中再加入一个intent-filter标签,将data元素移到新建的标签中。这样应用既可以显示图标又可以响应特定的Uri了。
参考文章:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!在AndroidManifest.xml中做如下修改&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.DEFAULT"/&
&/intent-filter& 在第三方程序中如下调用Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.test.app",
"com.test.app.MainActivity"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);其中com.test.app为应用程序包名,而com.test.app.MainActivity为你所要启动的第一个Activity亦可如此:public boolean startApp(String packageName) {
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_DEFAULT);
PackageManager pm = getPackageManager();
List&ResolveInfo& listInfos = pm.queryIntentActivities(intent, 0);
String className =
for (ResolveInfo info : listInfos) {
if (packageName.equals(info.activityInfo.packageName)) {
className = info.activityInfo.
if (className != null && className.length() & 0) {
intent.setComponent(new ComponentName(packageName, className));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
startActivity(intent);
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至: 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。左手编程,右手写诗,在代码的世界里遨游。
Android如何隐藏桌面图标
1、背景介绍
好吧,变态的老板又不知道从哪里看到了这么一个需求:要把自己的应用隐藏起来,不让别人发现,然后,额,偷偷的干啥。
在使用Android手机的过程中,会出现一种情况,你的通知栏被占满了,你却不知道是哪个应用做的手脚;你的手机会莫名其妙的发送短信,当然你也不知道这个是哪个应用做的;再或者你的手机莫名其妙今天的流量用超了,额,你找了半天也不知道这应用在哪里。
于是乎,有些聪明的用户,开始打开设置----&应用程序----&正在运行。赫然看见一个没见过的应用在跑着,当然,这个时候那家伙对你还是客气的,若是直接换成了Google的小机器人,恐怕你要找好久才知道这做坏事的家伙究竟是谁。
2、代码实现
好吧,老板说这玩意赚钱,没办法,都是被逼的呀。怎么实现呢?先来一段java代码呗:
// 将app图标隐藏:
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
嗯,没错,你用上面一段代码,在你的机器运行一下,你的图标就不见了。
什么?这个不是你想要的,额,你想要在程序安装的时候直接没有啊?因为用户不一定会点击你呢,额,这个,好吧,也是可以实现的。不过,这里需要在xml文件中实现了,怎么弄呢,请看代码:
android:name=".MainActivity"
android:excludeFromRecents="true"
android:label="@string/app_name" &
&intent-filter&
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.LAUNCHER" /&
&/intent-filter&
&/activity&
上面这段代码,主要是说的MainActivity中,如果你设置了launcher,那么就会显示一个图标,额,把它干掉行不行?
经过测试,发现是可以的。。。不知道这算不算是Android的漏洞,如果程序没有如下语句,程序依然可以运行
&category android:name="android.intent.category.LAUNCHER" /&
如果你想你的程序不要显示在Android的桌面上,那么你只需要去掉这行代码,OK,你安装应用的时候,是不会有图标显示的。
3、动态显示
好吧,不断变化的需求,变态的老板,得到这样的结果了,并不满意,他还想动态的显示,用户点击了,显示一下,做黑手的时候,不显示。
额,老板你逗我么????算了,一次性写完代码,不过动态显示代码,只能够在Java代码中使用逻辑控制了。不废话,代码如下:
// 将app图标隐藏:
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
// 将app图标显示:
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
控制图标显示和隐藏
@param clazz
@param enabled true:显示、 false:隐藏
private void setComponentEnabled(Class&?& clazz, boolean enabled) {
final ComponentName c = new ComponentName(this, clazz.getName());
getPackageManager().setComponentEnabledSetting(c,enabled?
PackageManager.COMPONENT_ENABLED_STATE_ENABLED:PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP)
}4、擦下屁股
哎呀,后来发现Android提供了一个最近程序显示的机制,如果是最近启动过的程序,那么会在最近程序中找到,额,怎么办呢?
实际上,如果我们退出了应用,程序只在后台运行,这里也是找不到的,可是,可是,老板要,就算程序运行过了,也不能找到痕迹。。。。U can U up 啊。妹的,唉,苦逼程序员,就是苦逼命啊,还是要找到解决方案才对。
通过分析,我们的程序运行之后会有记录,那么,是不是在程序退出的时候,删除记录就行了呢?嗯,思路可行。那么记录放在哪里呢?我们从什么地方去删除呢?好吧,不多说了,经过测试,以下代码可行:
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.exit(0);
这么简单?对,就是这么简单,实际上只是调用了System.exit(0);这段代码而已,这里是杀死这个线程。
OK,搞定,收工。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 android 隐藏桌面图标 的文章

 

随机推荐