Primeiros passos com apps para TV – Android TV

Primeiros passos com apps para TV

Os apps para Smart TV têm estrutura semelhante dos apps para celulares e tablets. Essa semelhança significa que você pode modificar os apps existentes para execução também em dispositivos de TV ou criar novos com base no que já sabe sobre a criação de apps.

Apps para TVs precisam atender a requisitos específicos para se qualificar como um app para Android TV no Google Play. Para mais informações: Qualidade do aplicativo para TV.

Este tutorial descreve como baixar ferramentas no desenvolvimento de apps para TV e suas alterações para permitir que um determinado app seja executado em dispositivos de TV.

Também é necessário ler Projetar para TV e Criar layouts para TV. Além disso, teste o app de amostra Android Leanback no repositório do Android TV.

Compatibilidade com formatos de mídia

Consulte a documentação a seguir para ter informações sobre codecs, protocolos e formatos compatíveis com o Android TV.

Configurar um projeto para TV

Para desenvover um app para Android TV existente alguns parâmetros a serem modificados para rodar nas TV. Se você já tem um app para Android, o acréscimo de compatibilidade com o Android TV permite que você crie uma interface do usuário para TV aproveitando sua arquitetura.

Estes são os principais componentes que precisam ser usados para criar um app que seja executado em dispositivos de TV:

  • Atividades para Android TVs: no manifesto do aplicativo, declare uma atividade prevista para execução em dispositivos de TV.
  • Bibliotecas de TV: existem diversas Bibliotecas androidx disponíveis para dispositivos de TV que oferecem widgets para a criação de interfaces do usuário.

Pré-requisitos

Antes de começar a criar apps para TV, é preciso:

Declarar uma atividade para TV

<application
      android:banner="@drawable/banner" >
      ...
      <activity
        android:name="com.example.android.MainActivity"
        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="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>

A segunda entrada no manifesto de atividades deste exemplo especifica a atividade a ser iniciada em um dispositivo de TV.

Se estiver modificando um app existente para uso na TV, ele não precisará usar o mesmo layout de atividade que usa em smartphones e tablets. A interface do usuário do app para TV (ou a parte para TV do app existente) precisa oferecer uma interface mais simples para navegação fácil usando um controle remoto no sofá. Para orientações sobre como projetar um app para TV, consulte o guia Projetar para TV. Para mais informações sobre os requisitos mínimos de implementação para layouts de interface em TVs, consulte Criar layouts para TV.

Declarar compatibilidade com Leanback
Declare que seu app usa a interface do usuário Leanback exigida pelo Android TV. Se também estiver desenvolvendo um app que funcione em dispositivos móveis (smartphones, wearables, tablets etc.), defina o valor do atributo required como false. Se definir o valor do atributo required como true, o app somente será executado em dispositivos que usem a interface do usuário do Leanback.

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

Um app para rodar em um Android TV precisa declarar uma atividade de tela de início para TV no manifesto. Para fazer isso, ele usa um filtro de intentidade CATEGORY_LEANBACK_LAUNCHER. Esse filtro identifica seu app como ativado para TV e permite que o Google Play o identifique como um app para TV. Quando um usuário selecionar seu app na tela de início da TV, esse intent identificará a atividade a ser iniciada.

Não é necessário declarar a tela de toque

Aplicativos destinados à execução em dispositivos de TV não dependem de telas de toque para entradas. Para deixar isso claro, o manifesto do seu app para TV precisa declarar que o recurso android.hardware.touchscreen não é necessário. Essa configuração identifica o app como capaz de funcionar em um dispositivo de TV e é necessária para que ele seja considerado um app para TV no Google Play. O exemplo de código a seguir mostra como incluir essa declaração no manifesto:

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

Oferecer um banner de tela inicial
Se um aplicativo incluir um filtro de intent de tela de início do Leanback, ele precisa de um banner(ícone) de tela inicial para cada localização. O banner é o ponto de inicialização do app que aparece na tela inicial nas linhas de apps e jogos. Para adicionar o ícone de abertura (Banner) ao app, descreva o ícne como  banner no manifesto desta forma:
<application
        ...
        android:banner="@drawable/banner" >

        ...
    </application>

Use o atributo android:banner com a tag <application> para fornecer um banner padrão para todas as atividades do aplicativo ou a tag <activity> para uma atividade específica.

O banner precisa ser um recurso xhdpi com tamanho de 320 x 180 px. O texto precisa ser incluído na imagem. Se seu app estiver disponível em mais de um idioma, você precisará fornecer versões diferentes do banner com texto para cada idioma.

Criar apps para TV
Depois de completar as etapas descritas acima, é hora de começar a criar apps para a tela grande. Confira estes tópicos adicionais para ajudar a criar o aplicativo para TV:

Criar apps para rodar na TV: O SDK Android oferece ferramentas e widgets de interface do usuário para a criação de apps para TV que reproduzam vídeos e música e permitam ao usuário navegar pelo controle remoto.
Facilitar os usuários a encontrar o conteúdo na TV: com todas as opções de conteúdo ao alcance dos usuários, ajudar a encontrar conteúdo de que eles gostem é quase tão importante quanto oferecer o conteúdo. Este treinamento discute como destacar o conteúdo na TV.

Criar jogos para TV: dispositivos de TV são uma plataforma incrível para jogos. Consulte este tópico para ter informações sobre como criar incríveis experiências de jogos para TV.

Criar canais de TV: apresente seu conteúdo de vídeo de maneira simple e linear, no estilo de uma transmissão de TV, com canais e programas que seus usuários podem acessar por meio do controle remoto nos botões para cima/baixo.

Executar apps para TV
A execução do app é parte importante do processo de desenvolvimento. Você pode executar seu app em dispositivos de TV compatíveis com a depuração USB ou usar dispositivos de TV virtual.

Executar em um dispositivo real

Configure a TV da seguinte maneira:

Use um cabo USB para conectar seu dispositivo de TV a sua máquina de desenvolvimento. Se necessário, consulte a documentação fornecida pelo fabricante.
No dispositivo de TV, navegue até Configurações.
Na linha Dispositivo, selecione Sobre.
Role para baixo até Criar e selecione Criar várias vezes até receber a mensagem "Agora você é um desenvolvedor".
Volte para Configurações. Na linha Preferências, selecione Opções do desenvolvedor.
Selecione Depuração > Depuração USB e selecione Ativado.
Volte para a tela inicial da TV.
Para testar seu aplicativo no dispositivo de TV:

No Android Studio, selecione seu projeto e clique em Run  na barra de ferramentas.
Na janela Select Deployment Target, selecione seu dispositivo de TV e clique em OK.
Executar em um dispositivo virtual
O AVD Manager do Android SDK oferece definições de dispositivo que permitem criar dispositivos de TV virtuais para executar e testar seus aplicativos.

Para criar um dispositivo de TV virtual:

Procure ajuda no AVD Manager.
Na caixa de diálogo do AVD Manager, clique na guia Device Definitions.
Selecione uma das definições de dispositivo do Android TV e clique em Create AVD.
Selecione as opções do emulador e clique em OK para criar o AVD.