Как отключить поддержку Android TV в моем приложении? Манифест с жалобами на отсутствие LEANBACK_LAUNCHER
Я искал способ отключить поддержку Android TV из манифеста. Я знаю, что наше приложение несовместимо, и я читал, что даже если вы стремитесь поддерживать Android TV, приложения в любом случае оказываются неподдерживаемыми.
Однако я не нашел способа остановить манифест от запроса INTENTBACK_LAUNCHER. Я не хочу определять один, потому что я знаю, что наше приложение не совместимо с телевидением.
Вот предупреждения, которые я получаю прямо сейчас:
Ожидается использование функции android:name="android.software.leanback" android:required="false".
Ожидается, что действие будет иметь фильтр намерений android.intent.category.LEANBACK_LAUNCHER.
Аппаратная функция android.hardware.touchscreen явно не помечена как дополнительная
Поэтому, когда я пытаюсь предоставить ожидаемые теги, даже если я говорю следующее:
использует-функция android:name="android.hardware.touchscreen" android:required="true"
Он по-прежнему посылает предупреждение о том, что он может поддерживаться не всеми телевизорами, что является не чем иным, как предупреждением, но действительно раздражает, потому что я намеренно не хочу поддерживать Android TV. И даже после того, как я все еще получаю предупреждение фильтра намерений LEANBACK_LAUNCHER также.
Разве требование наличия сенсорного экрана не избавило бы меня от манифеста с просьбой предоставить LEANBACK_LAUNCHER? Я думаю, у некоторых телевизоров есть сенсорные экраны?
Кто-нибудь знает, как явно отключить поддержку Android TV?
Спасибо,
5 ответов
Удалите это из своего манифеста, и ваша ошибка исчезнет.
<uses-feature android:name="android.software.leanback" android:required="false" />
Я застрял в этом, но я думаю, что это просто ошибка, которая не может распознать мое приложение, это не приложение для Android TV!
сейчас я добавляю эти строки в манифест и исправлены 2 из 3 предупреждений
<uses-feature android:name="android.software.leanback" android:required="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
К сожалению, у меня пока нет решения для последнего предупреждения
Ожидается, что действие будет иметь фильтр намерений android.intent.category.LEANBACK_LAUNCHER.
Приложение, предназначенное для запуска на телевизионных устройствах, должно объявить активность запуска для ТВ в своем манифесте с использованием фильтра намерений android.intent.category.LEANBACK_LAUNCHER. Идентификатор проблемы: MissingLeanbackLauncher
Я могу добавить LEANBACK_LAUNCHER, но я не хочу! потому что я хочу отключить поддержку Android TV на всех.
Если хотите, создайте Activity и добавьте эти строки в манифест
<activity
android:name="com.example.android.TvActivity"
android:label="@string/app_name"
android:theme="@style/Theme.Leanback">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
А теперь выдает ошибку, чтобы добавить баннер. добавить эту строку
<application
android:banner="@drawable/banner" >
Вы можете отключить проверку ворса, добавив tools:ignore
атрибут вашего манифеста следующим образом:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.sampleapp"
tools:ignore="ImpliedTouchscreenHardware,MissingLeanbackLauncher,MissingLeanbackSupport">
Удалите Leanback из ваших зависимостей, например // реализация 'androidx.leanback:leanback:1.0.0'
удалить из манифеста
<!--uses-feature android:name="android.software.leanback" android:required="false" /-->
<!--category android:name="android.intent.category.LEANBACK_LAUNCHER" /-->
<!--application android:banner="@drawable/banner" -->
Независимо от того, какую библиотеку вы импортируете, которая вызвала проблему, исключите из нее опору.
implementation("com.library.using.tv:foo") {
exclude group: 'androidx.leanback', module: 'leanback'
}
Если вы не подозреваете какую-либо библиотеку, проверьте свое дерево зависимостей .