">
美文网首页
动态切换app图标

动态切换app图标

作者: lllllliudahong | 来源:发表于2021-01-04 18:27 被阅读0次




    <activity-alias
    android:name="com.fungo.xmsport.icon_tag"
    android:enabled="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:targetActivity=".splash.SplashActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    </activity-alias>

        <activity-alias
            android:name="com.fungo.xmsport.icon_tag_1"
            android:enabled="false"
            android:icon="@mipmap/ic_launcher_1"
            android:label="@string/app_name"
            android:targetActivity=".splash.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity-alias>
    
        <activity-alias
            android:name="com.fungo.xmsport.icon_tag_2"
            android:enabled="false"
            android:icon="@mipmap/icon_noble_lv1"
            android:label="@string/app_name"
            android:targetActivity=".splash.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity-alias>
    
        <activity-alias
            android:name="com.fungo.xmsport.icon_tag_3"
            android:enabled="false"
            android:icon="@mipmap/ic_chat_empty"
            android:label="@string/app_name"
            android:targetActivity=".splash.SplashActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity-alias>
        
        
        if (DataPreferencesHelper.getPref("isWelcome", false)) {
            //非第一次启动,一键登录预约取号
            when {
                TimeUtils.getToday() == "2020-10-20" -> {
                    openComponent( "com.fungo.xmsport.icon_tag")
                    disableComponent("com.fungo.xmsport.icon_tag_1")
                    disableComponent("com.fungo.xmsport.icon_tag_2")
                    disableComponent("com.fungo.xmsport.icon_tag_3")
                }
                TimeUtils.getToday() == "2020-10-21" -> {
                    disableComponent( "com.fungo.xmsport.icon_tag")
                    openComponent("com.fungo.xmsport.icon_tag_1")
                    disableComponent("com.fungo.xmsport.icon_tag_2")
                    disableComponent("com.fungo.xmsport.icon_tag_3")
                }
                TimeUtils.getToday() == "2020-10-22" -> {
                    disableComponent( "com.fungo.xmsport.icon_tag")
                    disableComponent("com.fungo.xmsport.icon_tag_1")
                    openComponent("com.fungo.xmsport.icon_tag_2")
                    disableComponent("com.fungo.xmsport.icon_tag_3")
                }
                else -> {
                    disableComponent( "com.fungo.xmsport.icon_tag")
                    disableComponent("com.fungo.xmsport.icon_tag_1")
                    disableComponent("com.fungo.xmsport.icon_tag_2")
                    openComponent("com.fungo.xmsport.icon_tag_3")
                }
            }
        }
        
        
        
        /**
     * 打开-启用
     */
    private fun openComponent(icon_tag: String) {
        LogUtils.d("liuhong : switchIcon icon_tag = $icon_tag")
        try {
                val pm = packageManager
                val actComponentName = ComponentName(
                        baseContext,
                        icon_tag)
                //活动图标新状态
                val actNewState = PackageManager.COMPONENT_ENABLED_STATE_ENABLED
                //新状态跟当前状态不一样才执行
                if (pm.getComponentEnabledSetting(actComponentName) != actNewState) {
                    pm.setComponentEnabledSetting(
                            actComponentName,
                            actNewState,
                            PackageManager.DONT_KILL_APP)
                }
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }
    
    /**
     *  关闭-禁用
     */
    private fun disableComponent(icon_tag: String) {
        LogUtils.d("liuhong : switchIcon2 icon_tag = $icon_tag")
        try {
                val pm = packageManager
                val normalComponentName = ComponentName(
                        baseContext,
                        icon_tag)
                //正常图标新状态,此处使用用来修改清单文件中activity-alias下的android:enable的值
                val normalNewState = PackageManager.COMPONENT_ENABLED_STATE_DISABLED
                //新状态跟当前状态不一样才执行
                if (pm.getComponentEnabledSetting(normalComponentName) != normalNewState) {
                    //PackageManager.DONT_KILL_APP表示执行此方法时不杀死当前的APP进程
                    pm.setComponentEnabledSetting(
                            normalComponentName,
                            normalNewState,
                            PackageManager.DONT_KILL_APP)
                }
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    相关文章

      网友评论

          本文标题:动态切换app图标

          本文链接:https://www.haomeiwen.com/subject/mwgvoktx.html