Java 使用API 17为一个应用程序提供多个启动器

Java 使用API 17为一个应用程序提供多个启动器,java,android,intellij-idea,Java,Android,Intellij Idea,我有我的应用程序,我想有两个不同的发射器,每个发射器发射不同的活动。它们都应该捆绑到一个apk中,而不是两个单独的应用程序中。我知道这是可能的,例如在谷歌play商店的XKCD浏览器中。我已经在我需要在启动器中的第二个活动中尝试实现此部分: <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent

我有我的应用程序,我想有两个不同的发射器,每个发射器发射不同的活动。它们都应该捆绑到一个apk中,而不是两个单独的应用程序中。我知道这是可能的,例如在谷歌play商店的XKCD浏览器中。我已经在我需要在启动器中的第二个活动中尝试实现此部分:

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

这导致在单击第二个启动器时,第一个活动被声明为要启动的主活动。我也尝试过:

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

以及:

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


您的主要活动应包括:

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

也许您需要在开始应用程序的通话意图所在的位置输入相同的日期

<activity
android:name="com.spectrum.media.activity.InitializationScreen" 
android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.MUSIC_PLAYER" />

<category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.APP_MUSIC" />
<action android:name="android.intent.action.MEDIA_BUTTON" />
                <action android:name="android.media.AUDIO_BECOMING_NOISY" />
</intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
            <intent-filter android:priority="-1">
                <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
           </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
                <!-->category android:name="android.intent.category.BROWSABLE" />;-->
</intent-filter>
</activity>

类别android:name=“android.intent.category.BROWSABLE”/>;-->

并在第一个活动中解析此方案,必要时运行其他方案。

这会导致系统吐司说“未安装应用程序”@Iambic,这很奇怪。确保只使用一个
MAIN
intent过滤器,然后重新安装应用程序。如果问题仍然存在,我想可能会有问题,具体取决于您的活动代码。例如,您的第二项活动是否与适当的活动课程相关联?请发布清单文件。重新安装应用程序后,第二个活动不会显示为启动器。清单中是否定义了默认类别
此外,您可能需要为这两个活动设置
android:taskAffinity
,以避免在第一个应用程序已在内存中时单击第二个启动器启动第一个应用程序。请参见此处:
<activity
android:name="com.spectrum.media.activity.InitializationScreen" 
android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.MUSIC_PLAYER" />

<category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.APP_MUSIC" />
<action android:name="android.intent.action.MEDIA_BUTTON" />
                <action android:name="android.media.AUDIO_BECOMING_NOISY" />
</intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
            </intent-filter>
            <intent-filter android:priority="-1">
                <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
                <data android:mimeType="audio/*" />
                <data android:mimeType="application/ogg" />
                <data android:mimeType="application/x-ogg" />
                <data android:mimeType="application/itunes" />
           </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
                <!-->category android:name="android.intent.category.BROWSABLE" />;-->
</intent-filter>
</activity>