Android TV自定义Home应用重启后无法默认启动的原因
Android TV 自定义Home应用重启后不自动启动的问题排查及解决
核心原因分析
你遇到的问题大概率是Intent Filter配置冲突导致的:将LEANBACK_LAUNCHER(TV启动器入口)和HOME(Home应用入口)的意图过滤器合并在同一个<intent-filter>标签内,会让系统在重启时无法正确识别该应用作为默认Home应用的启动逻辑。Android系统对这两类入口的识别逻辑是分开的,合并声明会干扰系统的启动判断。
具体解决方案
1. 拆分Intent Filter
修改Manifest中的Activity配置,将两个入口的意图过滤器分开声明,确保系统能清晰识别不同的启动场景:
<activity android:name=".ui.main.LandingActivity" android:launchMode="singleInstance" android:stateNotNeeded="true" android:exported="true" android:screenOrientation="landscape"> <!-- TV启动器入口(用于应用列表显示) --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!-- Home应用入口(用于Home键触发及系统重启启动) --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
2. 检查系统层面限制
部分定制化Android TV系统(如小米、TCL等厂商的系统)对第三方Home应用有额外限制:
- 要求应用必须是系统应用:需要将应用安装到
/system/app或/system/priv-app目录(需Root权限),并使用系统签名。 - 存在厂商专属的Home应用白名单:需联系厂商获取授权或适配方案。
3. 验证权限与启动模式
- 无需额外添加
RECEIVE_BOOT_COMPLETED权限:系统重启后会主动唤起默认Home应用,不需要监听开机广播。 - 保留
singleInstance启动模式:该模式符合Home应用的单实例要求,不会导致重启问题。
测试步骤
- 重新编译安装修改后的应用。
- 再次在系统设置中设置该应用为默认Home应用。
- 重启设备,观察应用是否自动启动。
内容的提问来源于stack exchange,提问作者Malo
相关产品推荐
相关产品推荐

