Android APK以默认名称和别名安装活动



我的Android应用的主要活动,具有默认名称和一个别名名称,如果用户选择,则应将其放在应用程序中。我以下方式在我的androidmanifest.xml上定义了这一点。

     <activity
        android:name="com.example.fgd.myapplication4.MainActivity4"
        android:label="mydefaultlabel"
        android:theme="@style/AppTheme.NoActionBar"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity-alias
        android:label="myaliaslabel"
        android:name=".MainActivity-Flavor-One"
        android:enabled="true"
        android:targetActivity=".MainActivity4"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>
</application>

,但我尝试构建APK并安装手机,并且它安装了带有" MyDefaultLabel"名称的图标,以访问该应用程序,而另一个带有" Myaliaslabel"的图标以访问它,这不是我所需的行为,首先,我希望它只是使用" mydefaultlabel"安装图标。

我应该做什么来实现这种行为?

pd:尝试删除和,一旦我使用此代码更改应用程序的别名,就无法再运行该应用程序了:

getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.example.alber.myapplication4", "com.example.alber.myapplication4.MainActivity-Flavor-One"),
                            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.example.alber.myapplication4", "com.example.alber.myapplication4.MainActivity4"),
                            PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

我发现该应用未安装在我的Android设备上的错误。

看起来,无论如何,都必须使用启动器类别定义别名才能以这种方式更改应用程序别名。

我认为除了以这种方式以外的方式都无法更改别名。

还有其他可以做的事情吗?

您正在设置两个主活动启动器

            <action android:name="android.intent.action.MAIN" /> //<--wrong
            <category android:name="android.intent.category.LAUNCHER" /> <--wrong

您只需要将这些行添加到实现图标或其他任何特定活动中。

好吧,这实际上比我容易。

在Activity-Alias中,您只需要更改Android:enabled =" true"到Android:enabled =" false",这样,别名仍然可以正常工作,但不会首次显示作为启动器。<<<<<<<<<<<<

最新更新