Android 电视未正确启动 activity

Android TV not starting correct activity

我有一个应用应该 运行 在 phone 和电视上。在清单中,我将 phone 的启动 activity 指定为

<activity
    android:name=".view.phone.MainActivity"
    android:launchMode="singleTop"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

电视的发布 activity

<activity
    android:name=".view.leanback.MainActivity"
    android:launchMode="singleTop"
    android:label="@string/app_name"
    android:screenOrientation="landscape" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
</activity>

不是在 LAUNCHER 和 LEANBACK_LAUNCHER 之间进行过滤,而是在任一设备上它只与清单中首先声明的 activity 一起使用。知道我做错了什么吗?

您正在使用相同的 Activity 名称 MainActivity 来调用您的电视和 Phone 应用程序。更改其中一个名称,您应该可以开始了。如第一步所示 here,您的 activity 电视名称应不同于您的 phone 应用程序的 activity 名称。

我的解决方案是像这样创建 2 个启动配置: