hi,粉丝朋友们大家好!今天开始我们来开发一个android手机上如何动态隐藏桌面图标案例!
项目背景:
手机上桌面图标有时候不想被其他人发现,我们安装了某些应用,比如陌陌,xxx交友,和平精英等等
具体实现方案讨论:
方案1:在桌面launcher上面进行对应图标隐藏既可以
缺点:只能隐藏桌面图标,但是一些应用中心等也一样有入口,所以不彻底
方案2:在桌面launcher隐藏,而且framework层面实现拦截跳转,如framework在startActivity地方进行拦截
缺点:这里可能会让第三方应用一样可以看到应用,但是点击了没有反应,而且需要修改framework相对成本较大
方案3:android本身有一个系统级别api,setComponentEnabledSetting,这接口直接让app的Launcher图标组件直接为disable状态,直接Launcher,应用中心等无法获取应用入口,而且应用入口即使被写死componentName也无法通过startActivity启动
优点:先比前2个方案隐藏彻底性最好,而且系统级别应用既可以实现,不需要framework参与,减少耦合,一般框架framework修改的原则都是尽量可以简单在应用实现的就在应用实现


实现过程及demo源码
这里需要分2个大步骤实现:
1、获取要隐藏的app入口的ComponentName,然后再调用setComponentEnabledSetting方法,这里我们demo,暂时写死一个固定ComponentName,项目中大家可以通过PackageManager获取所有的Launcher 图标,然后再做一个listview显示开关,这里demo实现核心代码如下:

        binding.fab.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {PackageManager packageManager = getPackageManager();if (enableState == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {enableState =PackageManager.COMPONENT_ENABLED_STATE_DISABLED;} else {enableState =PackageManager.COMPONENT_ENABLED_STATE_ENABLED;}packageManager.setComponentEnabledSetting(new ComponentName("com.panzq.applicationb","com.panzq.applicationb.TcpMainActivity"),enableState,PackageManager.DONT_KILL_APP);Snackbar.make(view, "Replace with your own action enableState = " + enableState, Snackbar.LENGTH_LONG).setAction("Action", null).show();}});

代码很简单,基本一看就懂就不多解释,就一个核心方法setComponentEnabledSetting
大家到这里是不是以为就完了啊?哈哈当然没有啦,以为普通第三方应用其实并没有调用setComponentEnabledSetting的权限,所以要在AndroidManifest声明对应权限

但是大家发现这里编译器是有提示错误的,说这里是系统级别权限,所以第三方app运行起来是一定会崩溃报错的哦,那接下来就是要解决这个报错权限问题,那么请看下一篇blog吧。

课程答疑和新课信息:QQ交流群:422901085进行课程讨论,加群主qq享受 优惠
FrameWork入门课视频链接:https://edu.csdn.net/course/detail/30298
FrameWork实战课1视频链接:https://edu.csdn.net/course/detail/30275
FrameWork跨进程通信视频链接:https://edu.csdn.net/course/detail/35911
专题博客系列:
Android 8.1 zygote 启动过程源码
Android Framework实战视频–Zygote的fork进程篇
Android Framework实战视频–SystemServer启动篇
Android Framework实战视频–SystemServer启动FallbackHome篇
Android Framework实战视频–FallbackHome进程启动及Activity启动篇
Android Framework实战视频–FallbackHome结束启动Launcher篇
Android Framework实战视频–BootAnimation的启动源码分析(Android8.1)

Android Framework实战视频–init进程的bootanimation启动源码分析(补充Android 10部分的BootAnimation的启动源码分析)

android framework项目开发案例-动态隐藏Launcher上图标相关推荐

  1. 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》

    <实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明    辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...

  2. 《实战突击.php项目开发案例整合》.(明日科技).[PDF]ckook

    图书作者: 明日科技 图书编号: 9787121141140 图书格式: PDF 出 版 社: 电子工业出版社 出版年份: 2011 图书页数: 800-900 [内容简介] <实战突击:php ...

  3. Android插件化开发之动态加载本地皮肤包进行换肤

    Android插件化开发之动态加载本地皮肤包进行换肤 前言: 本文主要讲解如何用开源换肤框架 android-skin-loader-lib来实现加载本地皮肤包文件进行换肤,具体可自行参考框架原理进行 ...

  4. 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

    使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...

  5. python项目开发案例-Python项目开发案例集锦 PDF 全彩超清版

    给大家带来的一篇关于Python案例相关的电子书资源,介绍了关于Python.项目开发.Python案例方面的内容,本书是由吉林大学出版社出版,格式为PDF,资源大小99.1 MB,明日科技编写,目前 ...

  6. python开发项目案例集锦 pdf_Python项目开发案例集锦 实战项目代码+配套文件

    Python项目开发案例集锦涵盖8个开发方向.23个项目,循序渐进地让读者在实践中学习,在实践中提升实际开发能力. 全书共8篇:控制台程序.小游戏.实用小工具.网络爬虫.数据分析.人工智能.Web开发 ...

  7. 实战突击:PHP项目开发案例整合(第2版)

    为什么80%的码农都做不了架构师?>>>    实战突击:PHP项目开发案例整合(第2版) 案例涉及行业广泛,实用性非常强.通过对<实战突击:PHP项目开发案例整合(第2版)& ...

  8. 20套初级javaweb项目开发案例(适合白小)——计算机毕业设计

    20套javaweb项目开发案例,数据库是mysql.有jsp+servlet,ssh和ssm项目.纯项目源码,配套详细项目讲解说明.适合初学者使用.可以用作课题项目,期末作业等

  9. 使用Jquery+EasyUI 进行框架项目开发案例讲解之三---角色管理源码分享

    使用Jquery+EasyUI 进行框架项目开发案例讲解之三 角色管理源码分享   在上两篇文章  <使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享> & ...

  10. 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享

    使用Jquery+EasyUI 进行框架项目开发案例讲解之二 用户管理源码分享  在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享>我们分享了 ...

最新文章

  1. python判断点在四边形内
  2. VTK:PolyData之SurfacePointPlacer
  3. lhgselect 联动选择下拉菜单 v1.0.0 (2011-06-13)
  4. sql limit 子句_Java 8流中的常见SQL子句及其等效项
  5. 树莓派进阶之路 (029) - 语音识别模块 LD3320(原创)
  6. 电子科大计算机2014级,电子科大-计算机-操作系统实验报告-2014级.docx
  7. Java程序---学生管理系统的登录和注册
  8. LM2596、LM2576
  9. 无法从“cstring”转换为“lpcstr”_别用Sketchup一个个转模型的版本了,用这些批量转换器真香…...
  10. 怎么将苹果手机屏幕投屏到电脑上
  11. 无法定位序号344于动态链接库_无法定位序号 3873 于动态链接库存LIBEAY32.dll上
  12. Latex输入大小写罗马数字
  13. 英语四级口语测试软件,讯飞大学英语四六级口语考试系统
  14. BUUCTF刷题记录 Harley Quinn
  15. 电子原理 半波整流与桥式整流Protues仿真电路
  16. 中南大学计算机博士就业,求救!中南大学博士毕业要求
  17. androidstudio图片居中_Android imageView图片按比例缩放-Fun言
  18. Android安全性优化——APP加固
  19. 【毕设论文——必修篇】如何正确引用参考文献?让参考文献格式变标准
  20. SpringBoot 文件上传 通过Content-Type和文件头判断文件类型

热门文章

  1. 奇虎360 2017校招笔试题
  2. LTK5328内置自适应升压带PBTL模式_2X8W双声道音频功率放大器
  3. linux系统电视u盘安装教程,linux系统U盘安装教程
  4. Adobe Dreamweaver CS6 安装教程详解「附pj文件」
  5. 如何拼局域网所有ip_在windows命令行批量ping局域网内IP
  6. 目标检测中常见指标 AP MAP coco Pascal voc 评价指标说明
  7. 4个免费的ASP.NET托管网站
  8. 关于数据依赖的公理系统之Armstrong公理系统推理证明
  9. 数字代理在持续由内而外重塑创新
  10. 华为鸿蒙爆出惊天骗局,华为鸿蒙系统爆出惊天骗局!