package com.example.pc.icon_text;
import android.app.Activity;
import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button[] btnList=new Button[4];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pmTest();
enableComponentde();
btnList[0] = (Button) findViewById(R.id.btn_1);
btnList[1] = (Button) findViewById(R.id.btn_2);
btnList[2] = (Button) findViewById(R.id.btn_3);
btnList[3] = (Button) findViewById(R.id.btn_4);
for (int i = 0 ;i <btnList.length;i++){
btnList[i].setTag(i);
btnList[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int tag = (int) v.getTag();
switch (tag){
case 0:
enableComponentName1();
Log.e("1","0");
break;
case 1:
enableComponentName2();
Log.e("1","1");
break;
case 2:
enableComponentName3();
Log.e("1","2");
break;
case 3:
enableComponentde();
Log.e("1","3");
break;
}
}
});
}
}
private PackageManager mPackageManager;
private ComponentName componentNameDefault;
private ComponentName componentName1;
private ComponentName componentName2;
private ComponentName componentName3;
/**
* 设置默认
*/
private void enableComponentde() {
disableComponent(componentName2);
disableComponent(componentName3);
disableComponent(componentName1);
enableComponent(componentNameDefault);
}
/**
* 设置第icon1图标生效
*/
private void enableComponentName1() {
disableComponent(componentNameDefault);
disableComponent(componentName3);
disableComponent(componentName2);
enableComponent(componentName1);
}
/**
* 设置第icon2图标生效
*/
private void enableComponentName2() {
disableComponent(componentNameDefault);
disableComponent(componentName3);
disableComponent(componentName1);
enableComponent(componentName2);
}
/**
* 设置第icon3图标生效
*/
private void enableComponentName3() {
disableComponent(componentNameDefault);
disableComponent(componentName2);
disableComponent(componentName1);
enableComponent(componentName3);
}
private void enableComponent(ComponentName componentName) {
mPackageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
/**
* 禁用组件
*
* @param componentName 组件名
*/
private void disableComponent(ComponentName componentName) {
mPackageManager.setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
public void pmTest() {
mPackageManager = getPackageManager();
componentNameDefault = getComponentName();
componentName1 = new ComponentName(getBaseContext(), "com.example.pc.icon_text.MainActivity1");
componentName2 = new ComponentName(getBaseContext(), "com.example.pc.icon_text.MainActivity2");
componentName3 = new ComponentName(getBaseContext(), "com.example.pc.icon_text.MainActivity3");
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.pc.icon_text">
<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">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name=".MainActivity1"
android:enabled="false"
android:icon="@mipmap/icon_1"
android:label="icon1"
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=".MainActivity2"
android:enabled="false"
android:icon="@mipmap/iocn_2"
android:label="icon2"
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=".MainActivity3"
android:enabled="false"
android:icon="@mipmap/icon_3"
android:label="icon3"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
</application>
</manifest>