我们可以在 AndroidManifest.xml 中有一个启动器活动和一个 lean_back 启动器活动吗?

问题描述 投票:0回答:1

是否可以有两个活动,一个在手机上打开,另一个在电视设备上打开?我想有一个单独的电话和电视活动。我的 AndroidManifest.xml 中有以下 xml。但是,当我在电视模拟器上运行该应用程序时,它仍然会打开 LandingScreenActivity。

<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>
</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>
</activity>
android kotlin android-tv
1个回答
0
投票

您可以保留一个活动作为启动器。一旦活动打开,您就可以检查设备类型。如果设备是电视,那么您可以打开电视屏幕并清除之前的屏幕。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_landing_screen);
        UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
        if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
            startActivity(new Intent(this, TVMainActivity.class));
            finish();
        }

    }

您可以检查这个 - Android TV 未启动 LAUNCH_LEANBACK 活动

© www.soinside.com 2019 - 2024. All rights reserved.