我试图以编程方式更改应用程序图标,但每次图标更改时我的应用程序都会终止,我想要实现的是当我更改应用程序图标时应用程序不会终止,我的代码有问题。
我的 Android 清单
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name=".MainActivity.White"
android:exported="true"
android:icon="@mipmap/ic_launcher_white"
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=".MainActivity.Dark"
android:exported="true"
android:icon="@mipmap/ic_launcher"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
</application>
我的主要活动
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val darkIconComponentName = ComponentName(this, "com.example.example.MainActivity.Dark")
val whiteIconComponentName = ComponentName(this, "com.example.example.MainActivity.White")
findViewById<Button>(R.id.dark_id).setOnClickListener {
packageManager.setComponentEnabledSetting(whiteIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
packageManager.setComponentEnabledSetting(darkIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
}
findViewById<Button>(R.id.white_id).setOnClickListener {
packageManager.setComponentEnabledSetting(darkIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)
packageManager.setComponentEnabledSetting(whiteIconComponentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
}
}