Android TV не запускается LAUNCH_LEANBACK Активность

Я хочу создать один apk, который будет совместим с мобильным телефоном и телевизором. Как я понимаю, я должен указать активность запуска для обеих платформ в манифесте, один для мобильных с <category android:name="android.intent.category.LAUNCHER" />еще один для ТВ с <category android:name="android.intent.category.LEANBACK_LAUNCHER" />intent filter, И Android должен автоматически выбирать правильную активность при запуске, в зависимости от платформы, верно? Или я должен добавить код Java и начать свою телевизионную деятельность с кода? В настоящее время он запускает мою мобильную активность при использовании эмулятора Android TV. Ниже мой файл манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.mypackagename"
    android:versionCode="142"
    android:versionName="2.0.142" >

    <uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-feature
        android:name="android.hardware.microphone"
        android:required="false" />

    <uses-feature
        android:name="android.hardware.bluetooth"
        android:required="false" />

    <!-- TV -->
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />

    <uses-feature android:name="android.software.leanback"
        android:required="false" />

    <application
        android:name="com.mypackagename.App"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@drawable/ic_launcher"
        tools:replace="android:icon"
        android:label="@string/app_name"
        android:banner="@drawable/ic_launcher"
        android:largeHeap="true"
        android:supportsRtl="false"
        android:theme="@style/AppTheme" >

        <activity
            android:name="com.mypackagenametv.MainTVActivity"
            android:theme="@style/TVAppTheme"
            android:label="@string/app_name"
            android:logo="@drawable/ic_launcher"
            android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.mypackagenametv.PlayerActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
        <activity android:name="com.mypackagenametv.DetailsActivity" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name="com.mypackagename.ui.activities.MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="sensorLandscape"
            android:windowSoftInputMode="stateHidden|adjustResize|adjustPan" >
            <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>
        <activity
            android:name="com.mypackagename.ui.activities.SplashActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="sensorLandscape"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 .... other activities
    </application>

</manifest>

РЕШИТЬ

Моя мобильная активность была явно указана в Запуск конфигурации как средство запуска. После установки Launch default Activity все работает нормально.

1 ответ

У меня такая же проблема. Решение определяло другую конфигурацию для Android TV.

Шаг 1. Отредактируйте конфигурацию

Шаг 2. Скопируйте конфигурацию приложения Android.

Шаг 3. Измените имя конфигурации на tvApp

Шаг 4. Измените действие запуска на действие на ТВ.

Другие вопросы по тегам