如何在运行时更改Android应用程序的名称和图标?

9
安装安卓应用后,是否可能在运行时通过按下应用内的按钮动态更改应用图标和名称?以下是目前的代码:
getPackageManager().setComponentEnabledSetting(

new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity"),

                PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);


            try {
getPackageManager().setComponentEnabledSetting(
                           new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity-One"), 
                                               PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
                            } catch (Exception e) {
                               //handle
                            }

在清单文件中...
 <application
        android:allowBackup="false"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name2"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.badgemaste.MainActivity"
            android:label="@string/app_name" 
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity-alias
            android:icon="@drawable/ic_laun" 
            android:label="@string/app_name" 
            android:name="com.example.badgemaste.MainActivity-One"
            android:enabled="true"
            android:targetActivity="com.example.badgemaste.MainActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias> 



    </application>

当我运行这段代码时,最初第一个图标将出现(在抽屉和操作栏中),然后在关闭应用程序并重新运行它后,它将切换到另一个图标。
我想做的是将此过程分配给一个按钮,即只有按下该按钮,图标才会更改,否则不更改。如何实现?
1个回答

2
现在您已经能够使用PackageManager更改活动,只需创建一个按钮并将代码放在其OnClick中即可。如果这个可以工作,那么那个也应该工作。

https://dev59.com/bnPYa4cB1Zd3GeqPiWY4?answertab=active#tab-top - Amitabha Biswas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接