Dynamic Launcher Icon and Name for Android App

Here is the simple way to change your android apps Launcher icon and Application name dynamically. If you want multiple launcher icons and Application names these Android tutorials for you you can see some simple steps to make you App Dynamic Launcher Icon and Name for Android.

Let’s Start to Create an Android Project and make Dynamic Launcher Icon and Name for Android App.

Step 1.  Create a 3  Java Class with the Name of  OneLauncher, TwoLauncher, ThreeLauncher.

In this step, you can create a 3 java class with the name reference according to you.  After that Add activity-alias in your AndroidManifest.xml. These all 3 class add-in Manifest with the activity-alias teg.

 

Step 2. Add activity-alias in your AndroidManifest.xml

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity android:name=".MainActivity"></activity>


    <activity-alias
        android:name="OneLauncherAlias"
        android:enabled="true"
        android:icon="@mipmap/ic_launcher"
        android:label="One"
        android:targetActivity=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity-alias>

    <activity-alias
        android:name="TwoLauncherAlias"
        android:enabled="false"
        android:label="Two"
        android:icon="@mipmap/ic_launcher1"
        android:targetActivity=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity-alias>

    <activity-alias
        android:name="ThreeLauncherAlias"
        android:enabled="false"
        android:label="Three"
        android:icon="@mipmap/ic_launcher2"
        android:targetActivity=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity-alias>
</application>

 

Step 3. Enable and disable the activity-alias based on your requirement

Enable and disable the activity-alias based on your requirement. In my example, On click of the one layout, I am enabling the activity-alias OneLauncherAlias and disabling the rest.

Like You have 3 Button Iocns1,  Icons2, Icons3,  When clicking on Icons1 to set Launcher One Icon and Name, and then to click on Icons2 Button set Launcher Two Icons Name.

In Your Main Activity, XML file Add 3-4 Buttons 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/Button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button1"/>

        <Button
            android:id="@+id/Button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button2"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/Button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button3"/>

        <Button
            android:id="@+id/Button3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button4"/>
    </LinearLayout>
</LinearLayout>

Step 4 Main activity Java Class On button click change icons and name 

public class MainActivity extends AppCompatActivity {

    Button Button1,Button2,Button3,Button4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button1=findViewById(R.id.Button);
        Button2=findViewById(R.id.Button1);
        Button3=findViewById(R.id.Button2);
        Button4=findViewById(R.id.Button3);

        Button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PackageManager pm = getPackageManager();
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, OneLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, TwoLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, ThreeLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

                Toast.makeText(MainActivity.this, "Launcher one has been applied successfully",Toast.LENGTH_SHORT).show();

            }
        });

        Button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PackageManager pm = getPackageManager();
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, OneLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, TwoLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, ThreeLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

                Toast.makeText(MainActivity.this, "Launcher one has been applied successfully",Toast.LENGTH_SHORT).show();

            }
        });

        Button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PackageManager pm = getPackageManager();
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, OneLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, TwoLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
                pm.setComponentEnabledSetting(new ComponentName(MainActivity.this, ThreeLauncher.class), PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);

                Toast.makeText(MainActivity.this, "Launcher one has been applied successfully",Toast.LENGTH_SHORT).show();

            }
        });

        Button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

    }
}
Facebooktwitterredditpinterestlinkedinmail

Related Post