Android更換桌面圖標和app名字

1、AndroidManifest配置

        <activity android:name=".MainActivity"/>
        <!-- 設置一個默認的別名-->
        <activity-alias
            android:name=".DefaultAliasActivity"
            android:enabled="true"
            android:icon="@mipmap/app_one"
            android:label="@string/app_name"
            android:targetActivity=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

      <!-- 需要換圖標和名稱別名-->
        <activity-alias
            android:name=".FestivalActivity"
            android:enabled="false"
            android:icon="@mipmap/app_two"
            android:label="@string/app_name2"
            android:targetActivity=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

首先給MainActivity創建兩個別名,一個為DefaultAliasActivity,另一個FestivalActivity。參數icon和label為app桌面圖標和名稱,targetActivity別名對象,enabled是否啟用,這里要注意,只能有一個為true。

2、主要java代碼切換

/**
     * 設置默認默認圖標
     */
    public void setDefaultAlias() {
        PackageManager packageManager = getPackageManager();

        ComponentName name1 = new ComponentName(this, "com.xiaoxing.hide.DefaultAliasActivity");
        packageManager.setComponentEnabledSetting(name1, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

        ComponentName name2 = new ComponentName(this, "com.xiaoxing.hide.AliasActivity");
        packageManager.setComponentEnabledSetting(name2, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
    }

    /**
     * 設置活動主題圖標
     */
    public void setAlias() {
        PackageManager packageManager = getPackageManager();
        ComponentName name1 = new ComponentName(this, "com.xiaoxing.hide.DefaultAliasActivity");
        packageManager.setComponentEnabledSetting(name1, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

        ComponentName name2 = new ComponentName(this, "com.xiaoxing.hide.AliasActivity");
        packageManager.setComponentEnabledSetting(name2, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容