在Android10之前,应用程序通过调用PackageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)函数来实现图标隐藏。

但是在android10之后,所有带四大组件(activity service broadcast contentprovider)和需要声明申请权限的应用,调用这个函数将失去效果,经过测试效果如下:

  1. 若activity的icon和roundIcon这两者都不是黑色,则调用后显示实际的像素值。
  2. 如果activity的icon和roundIcon同时设置为黑色,调用后,icon不显示,roundIcon显示系统默认的空白背景图标。

网上一种方式是,设置activity的label为空字符串“”,icon和roundIcon像素值为0的黑色图标。该方案链接如下:
Android10.0应用图标隐藏方案(7.0-10.0)

上面链接中,icon和roundIcon的图标文件如下:

上文中,theme字段透明的设置:

通过实际测试,这种方法的隐藏效果是有重大缺陷的,在调用开始的隐藏函数后,桌面上的图标虽然抹去了,但留下了一个图标大小的阴影,并不是文中所说的完全看不到(作者源码我在android12上亲自测试过),这时候点击虽然没有效果,但是视觉上的缺陷是不能容忍的。

通过实际测试,我发现有一种隐藏图标的方式,其实现步骤如下:

  1. 设置主activity的intent-filter字段,其格式必须满足如下两点,一是在启动节点的activity中,除却"android.intent.action.MAIN"和"android.intent.category.LAUNCHER"外,还要添加别的条目,比如android.intent.action.VIEW,目的就是打乱应用程序启动节点的默认设置,使之含有别的行为和动作,不能正常显示图标。

  1. 使用Android scheme方式从浏览器启动(或者另外再安装一个程序,当作此程序的启动器)。要注意的是,浏览器scheme启动方式不是说的从客户端,我原先以为,在客户端的浏览器中输入形如myscheme://myhost这样的url会触发程序的启动,但是反复测试是在没有效果,于是便想到,会不会这种scheme方式,说的是访问服务器的页面,页面中有个形如 “<a href=“myscheme://myhost”>点击此处启动Android程序</a>” 的标签,客户端浏览器中点击后,即可启动客户端本地的Android组件。

经过测试,发现上述方法是完全可行的,也基本达到了预期目的。

测试源码地址如下,各位看官只需要揣摩一下AndroidManifest.xml文件中的Application节区即可。
源码地址

Android应用之【隐藏桌面图标的一种方法】相关推荐

  1. 手机计算机桌面图标恢复,三种方法快速找回桌面图标(附电脑文件恢复教程)...

    三种方法快速找回桌面图标!大家应该都喜欢把自己经常用到的图标放到桌面上吧.当我们需要进行一些操作的时候,直接点击桌面上的图标就能进入相应的界面.大大节省了我们的时间,让我们的办公更加便捷.如果我们的桌 ...

  2. 计算机桌面图标怎么显示出来,显示桌面图标不见了怎么办?显示桌面图标不见了解决方法...

    我们的 电脑桌 面有着许多本机自带的图标,如我的电脑, 我的文档 ,回收站等等.点击这些图标进入,就能方便快速地进行电脑操作.而其中有一个名为"显示桌面"的图标,这个图标是用来进行 ...

  3. Android如何动态更换桌面图标(巨坑)

    转载https://blog.csdn.net/pangjl1982/article/details/83308512 1.Android如何动态更换桌面图标 1.1使用场景       APP,在中 ...

  4. C#隐藏桌面图标和任务栏

    最近因为项目需要需要实现桌面图标和任务状态栏的隐藏功能,实现的方式很多,比如修改注册表值,调用windows API函数等.经过一番的查阅,这个功能暂时实现了,或许不是很好的方法,但是我预期的效果达到 ...

  5. 怎么把桌面计算机隐藏文件,怎么隐藏桌面文件夹名称?隐藏桌面图标下的文字的详细教程...

    怎么隐藏桌面文件夹名称?桌面图标一多就会显得很凌乱,特别有的软件名称很长,那么有没有什么方法可以让桌面看起来很清爽呢?当然是有,去掉桌面应用的名称不就简洁清爽了?下面就教大家不利用第三方软件的情况下, ...

  6. android8.1自定义通知栏,Android 8.1隐藏状态栏图标的实例代码

    近期客户需求,状态栏只显示时间和电池图标,如图 状态栏图标的布局文件在frameworks\base\packages\SystemUI\res\layout\status_bar.xml,主要包括通 ...

  7. upupoo为什么服务器维护中,upupoo怎么隐藏桌面图标 只需两步轻松隐藏

    多克斯文件是微软Office2007所开始使用的扩展名,比医生文件所占用的空间更小,但使用低版本的Office 2003无法直接打开多克斯文件,那么我们要如何打开多克斯文件呢? 用了upupoo动态壁 ...

  8. windows7隐藏桌面计算机,教你win7小技巧之隐藏桌面图标

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到教你win7小技巧之隐藏桌面图标的问题,如果我们遇到了教你win7小技巧之隐藏桌面图标的情况,该怎么处理怎么才能解决教你 ...

  9. windows7隐藏桌面计算机,win7小技巧之隐藏桌面图标

    小编这里为大家带来这篇关于win7系统小技巧之隐藏桌面图标的教程,很多用户的电脑在使用一段时间之后,屏幕上就放满了各种各样的文件,让人眼花缭乱,那么我们怎样将这些图标暂时的隐藏起来,让桌面变得更整洁呢 ...

最新文章

  1. keil debug如何在watch直接修改变量值_printf系列教程03_SWO打印输出配置,基于Keil『Debug(printf)Viewer』...
  2. ue4加速度_ue4粒子实现流血效果
  3. 优化Neo4j Cypher查询
  4. 51aspx技术文章汇总搜集
  5. PHP Overview
  6. 【原创】Bug管理操作规范个人经验总结
  7. 微单相机和单反相机的区别?摄影入门第一课
  8. python图片转文字easyocr_EasyScreenOCR - 图片文字识别工具
  9. 解决System进程占用80端口,关闭IIS服务
  10. 费纳姆密码-二进制密码
  11. 描述十二个异性追求者的拓展
  12. JPA中的could not initialize proxy - no Session异常分析与解决
  13. 关于电视剧《狂飙》的一点感悟--贵人相助的重要性
  14. Screen Wonders for Mac (3D动态视频壁纸) v1.9.1
  15. 审查元素:html标签消失。
  16. 光阑,像差和成像光学仪器
  17. 【笔记】效率脑科学:卓有成效地完成每一项工作
  18. The system is running out of memory. Please close applications to free memory
  19. 加速度计、陀螺仪工作原理
  20. 字符串存储的可修改性

热门文章

  1. matlab振荡环节的频率特性,试验五典型环节和系统频率特性的测量
  2. 如何权衡CCD图像传感器的各类优缺点?
  3. 计算两个时间之间的工作时长
  4. 记录一下自己刷题的错题
  5. 世界是平的,网络也是平的
  6. Amazon---IoT--Android和iOS上的实践,通过MQTT协议连接AWS IoT,并订阅和推送消息
  7. 工业人工智能系统框架、关键技术、典型应用与发展趋势
  8. 个人信息的集散地OutLook
  9. RocketMQ(四)——消息重试
  10. 手撕公司SSO登陆原理