首页 > 编程知识 正文

android更改应用图标,安卓app图标隐藏

时间:2023-05-05 07:57:53 阅读:156555 作者:3798

嗨,各位粉丝们好! 从今天开始开发用安卓手机动态隐藏桌面图标的案例!

项目背景:

手机的桌面图标有时不想被别人发现。 我们安装了陌生人、xxx交友、和平精英等APP

具体方案讨论:

场景1 :在桌面launcher上隐藏对应图标即可

缺点:只能隐藏桌面图标,但由于一些APP应用中心等也有同样的入口,所以不够彻底

方案2 :用桌面launcher隐藏,在framework级别实现拦截跳转。 例如,framework在开始活动的地方拦截

缺点:在这里也许可以像第三方APP一样看到APP,但是点击也没有反应,需要修改framework的成本相对较大

场景3 :安卓本身有系统级的api、setComponentEnabledSetting,该接口直接将app的Launcher图标组件置于禁用状态,直接Launcher

优点:最好比前两种方案隐藏彻底性,且能实现系统级应用,无需框架参与,减少耦合。 一般框架框架修改的原则尽可能简单地通过应用实现,这一点在应用中得到了实现

流程和demo源代码实现

这里需要分两大步骤来实现。

1、获取要隐藏的app门户的ComponentName,然后调用setComponentEnabledSetting方法。 在这里我们写了demo,临时固定的ComponentName,在项目中大家可以通过PackageManager获取所有的Launcher图标

binding.fab.setonclicklistener (new view.onclick listener ({ @ overridepublicvoidonclick ) view ) package manager if abled _ state _ enabled (enablestate=package manager.com ponent _ ) component ) )。 } else { enablestate=package manager.com ponent _ enabled _ state _ enabled; } package manager.setcomponentenabledsetting (newcomponentname (com.panZQ.applicationb (,com.pan zq.application b ) ) ' replacewithyourownactionenablestate=' enablestate,Snackbar.LENGTH_LONG ).setaction ) aaction }; ); 代码很简单,基本上一看就知道,但不多解释。 关于一种核心方法setComponentEnabledSetting

大家都以为到了这个地步就结束了吗? 哈哈当然没有。 普通的第三方APP其实无权调用setComponentEnabledSetting,所以在AndroidManifest中声明对应权限

但是,在这里我发现编译器有一个提示错误。 因为这里是系统级权限,所以第三方app运行时一定会崩溃并报告错误哦。 那么,接下来是解决报告这个错误的权限问题。 那么,请看下面的博客。

课堂答疑和新课程信息: QQ交流群: 422901085进行课堂讨论,加hxdqbqq享受优惠

框架入门课视频链接: https://edu.csdn.net/course/detail/30298

FrameWork实战课1视频链接: https://edu.csdn.net/course/detail/30275

FrameWork交叉进程通信视频链接: https://edu.csdn.net/course/detail/35911

专题博客系列:

安卓8.1 zygote启动进程的源代码

安卓框架实战视频zygote的fork流程篇

安卓框架实战视频systemserver启动篇

安卓框架实战视频systemserver启动故障主页篇

安卓框架实战视频fallback home进程启动和Activity启动篇

安卓框架实战视频fallback home结束启动器篇

安卓框架实战视频boot animation启动源分析(安卓8.1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。

安卓框架实战视频init流程引导动画启动源代码分析(补充安卓10的引导动画启动源代码分析) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。