安卓动态更换图标,这一篇应该够详细了吧~ 您所在的位置:网站首页 安卓换软件图标怎么换 安卓动态更换图标,这一篇应该够详细了吧~

安卓动态更换图标,这一篇应该够详细了吧~

2024-06-13 19:12| 来源: 网络整理| 查看: 265

APP多个图标以及名称动态更换 首先是权限 其次是要启动的launch app 其次是它的其他进入路口,也就是使用activity-alias

图标,名称都可以自定义,只需要注意targetActivity要同launch。 name是后面启动的入口类,不要相同。 一开始建议enable都为false,不然主页会有两个图标显示。

需要注意的是替换图标及名称建议在launch类里面进行,不然会出现莫名无法启动的问题,可能跟启动方式有关,所以后面启动方式我都改为了用包名启动,这样不会有问题。

动态更改图标

写详细一点,可以自己考虑精简 注意DISABLED和ENABLED的设定。

PackageManager pm = getPackageManager();

以下其中xxx为应用包名

替换为sha1 pm.setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); //关掉默认启动 pm.setComponentEnabledSetting( new ComponentName(getBaseContext(),"xxx.xxx.xxx.sha2"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);//关掉sha2 pm.setComponentEnabledSetting( new ComponentName(getBaseContext(),"xxx.xxx.xxx.sha3"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);//关掉sha3 pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), "xxx.xxx.xxx.sha1"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);//启动sha1

剩下的以此类推

替换为sha2 pm.setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting( new ComponentName(getBaseContext(),"xxx.xxx.xxx.sha1"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting( new ComponentName(getBaseContext(),"xxx.xxx.xxx.sha3"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), "xxx.xxx.xxx.sha2"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 替换为sha3 pm.setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting( new ComponentName(getBaseContext(),"xxx.xxx.xxx.sha1"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting( new ComponentName(getBaseContext(),"xxx.xxx.xxx.sha2"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), "xxx.xxx.xxx.sha3"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

在这里要注意的是,如果要启动此入口类app,在首次启动时用

Intent intent = new Intent(); intent.setClassName("xxx.xxx.xxx","xxx.xxx.xxx.main"); startActivity(intent);

替换后启动方式为

Intent intent = new Intent(); intent.setClassName("xxx.xxx.xxx","xxx.xxx.xxx.sha1"); startActivity(intent);

只需要保存更改后的包名即可,类似

String play = getSharedPreferences("syswj", Context.MODE_PRIVATE).getString("play","xxx.xxx.xxx.main"); Intent intent = new Intent(); intent.setClassName("xxx.xxx.xxx",play); startActivity(intent);

在这里插入图片描述 时隔多年,又写文咯o( ̄︶ ̄)o



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有