You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AndroidManifest能否配置LAUNCHER与LEANBACK_LAUNCHER?TV启动异常排查

Android 手机与TV端启动Activity配置问题解答

1. 能否同时配置LAUNCHER与LEANBACK_LAUNCHER启动Activity?

可以同时配置,但必须通过设备特性过滤区分不同设备的启动入口,否则系统会因识别到多个启动项,优先选择优先级更高的LAUNCHER对应的Activity,导致不符合预期的启动行为。

2. TV模拟器仍启动手机端Activity的解决方法

你当前的配置未添加设备类型过滤,TV设备会同时识别LAUNCHER和LEANBACK_LAUNCHER两个启动入口,最终优先启动手机端的LandingScreenActivity。只需给两个Activity分别添加设备适配的特性过滤即可解决:

修改后的AndroidManifest.xml配置

<!-- 手机端启动Activity -->
<activity
    android:name=".ui.login.LandingScreenActivity"
    android:exported="true"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <!-- 仅在带触摸屏的非TV设备上生效 -->
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="true" />
</activity>

<!-- TV端启动Activity -->
<activity
    android:name=".ui.tv.TVMainActivity"
    android:configChanges="keyboard|keyboardHidden|navigation"
    android:exported="true"
    android:launchMode="singleTask"
    android:screenOrientation="landscape">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
    <!-- 仅在支持Leanback的TV设备上生效 -->
    <uses-feature
        android:name="android.software.leanback"
        android:required="true" />
</activity>

核心逻辑说明

  • 手机端Activity通过android.hardware.touchscreen特性过滤,TV设备无触摸屏,会自动忽略该启动入口。
  • TV端Activity通过android.software.leanback特性过滤,普通手机不支持该特性,会自动忽略TV端启动入口。
  • 若TV模拟器仍有问题,需确认模拟器已开启Leanback环境支持,部分老旧模拟器可能不满足该特性要求。

内容的提问来源于stack exchange,提问作者karu6500

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:32:10