Публикация нескольких apks с разными фильтрами для мобильных устройств и телевизоров

Я хочу опубликовать несколько apks: один для мобильных устройств и другой androidtv в одном приложении. Согласно публикации нескольких APK-файлов с разными фильтрами, существует только четыре отличительных фильтра. в том же приложении:

В настоящее время Google Play позволяет публиковать несколько APK для одного и того же приложения, только если каждый APK предоставляет разные фильтры на основе следующих конфигураций:

  • # P3 #
  • # P4 #
  • # P5 #
  • # P6 #

Все остальные фильтры по-прежнему работают как обычно, но только эти четыре фильтра могут отличить один APK от другого в том же списке приложений в Google Play. Например, вы не можете опубликовать несколько APK для одного и того же приложения, если APK-файлы отличаются только в зависимости от того, есть ли на устройстве камера.

Я думал различать по уровням API и размеру экрана, но похоже есть совпадение:

  1. Уровень API (MinSDK) для приложения androidtv сохраняется на 21, а для мобильного приложения - на 16. Таким образом, уровни API перекрываются (21 и выше).

  2. Размер экрана телевизора с ОС Android может совпадать с размером экрана планшета: например. стандартное разрешение экрана телевизора высокой четкости составляет 720p. , 1080i и 1080p. Также разрешение Samsung nexus составляет 720x1280.

Боюсь, что если я опубликую androidtv apk с более высокой версией, он может заменить мобильное приложение на планшете с уровнем API> = 21 и размером экрана 720x1280, который также соответствует размеру макета телевизионного приложения.

Итак, как я могу четко различать эти два apks, используя разные фильтры в манифесте приложения?

ОБНОВЛЕНИЕ

Я уже добавил функцию откидывания в манифест приложения androidtv

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

Я вижу 42 поддерживаемых устройства для androidtv apk (не могу видеть, какие устройства) и 10791 для мобильного устройства apk, и всего 10832 устройства поддерживаются для всего приложения.

10791 + 42 = 10833

Таким образом, все еще существует вероятность 1 (10833 - 10832 = 1) перекрывающегося устройства, из-за которого отображается предупреждение.

предупреждение о перекрытии

введите описание изображения здесь

androidtv apk

введите описание изображения здесь

мобильный apk

введите описание изображения здесь

всего устройств

введите описание изображения здесь

Я не думаю, что перекрывающееся сообщение связано с тем, что androidtv apk является супернабором мобильных apk, как упоминалось в одном из комментариев, в котором рассматривается количество поддерживаемых устройств для androidtv, которое намного меньше.

Поскольку существует только одно возможное перекрывающееся устройство, я опубликую его, но мне жаль, что я не знал, какие устройства перекрываются, чтобы получить оба apk.


person random    schedule 26.09.2016    source источник


Ответы (1)


На самом деле есть «функция», которая используется специально для Android TV. Вы можете просмотреть инструкции в документации. Но в основном вам просто нужно указать, что он использует функцию leanback, как показано ниже.

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

Это гарантирует, что любое ТВ-устройство, работающее с функцией наклона, получит ваш APK (вы можете установить required = false, если используете один APK). Я считаю, что все официальные Android-телевизоры используют эту функцию. Возможно, обратный отсчет может быть на устройстве без телевизора, но в этом случае все их приложения будут отображаться как телевизионные приложения.

Есть несколько других функций, которые вы можете отключить / включить для таргетинга на Android TV. Вы можете просмотреть контрольный список выпуска для получения дополнительной информации (в частности, этот раздел ).

Следует отметить, что существуют некоторые дублирующие друг друга устройства, которым может удовлетворить как ваш мобильный APK, так и TV APK. После разговора с представителем команды Play Console они порекомендовали способ решения этой проблемы:

Что касается сценария с несколькими apk, когда у вас есть перекрывающиеся устройства - да, ваш APK Android TV всегда должен иметь код более высокой версии. Есть несколько способов решить эту проблему:

  1. Вы можете вручную занести в черный список 2 перекрывающихся устройства. Это немедленно решит проблему с перекрывающимися APK-файлами, однако, если в будущем будут выпущены новые устройства, подходящие для обоих APK, вы снова столкнетесь с этой проблемой.

  2. Используйте схему кода версии для APK-файла Android TV, который значительно превышает APK-файл мобильного устройства. Например, ваш APK-файл ТВ может иметь существующий код версии + 100000 или 100808, а APK-файл мобильного устройства - 838. В этом сценарии вы можете публиковать APK-файлы мобильного устройства до версии с кодом 100808, не обновляя APK-файл Android TV с помощью каждый толчок. Это также решит любые проблемы с альфа / бета-тестированием APK-файлов Android TV.

Его ответ также описан в разделе «Назначение кодов версий» этого документа < / а>.

person Kyle Venn    schedule 26.09.2016
comment
Я добавил функцию откидывания в манифест, но вижу предупреждение о перекрывающихся устройствах в консоли. Точное сообщение: на некоторых устройствах можно запускать несколько APK. В таком случае устройство получит APK с кодом более поздней версии. - person random; 26.09.2016
comment
Означает ли это, что мне придется публиковать apk androidtv с увеличенным кодом версии каждый раз, когда я публикую apk мобильного приложения, даже если у меня нет изменений в коде androidtv? Получат ли пользователи в этом случае уведомление об обновлении для androidtv? - person random; 27.09.2016
comment
Я просто покопался и отправил несколько писем, и похоже, что ответ на ваш вопрос вроде как. Я добавил полный ответ на свой OP. Но в основном вам нужно всегда давать своим APK-файлам Android код более высокой версии. Вы можете загрузить мобильный APK с более низким кодом версии, чем текущий APK для ТВ, и это делает так, чтобы телевизор всегда был выбранным. - person Kyle Venn; 03.10.2016