📺 Canales de vista previa de Android TV: una guía para principiantes

Foto de Tech Daily en Unsplash¿Qué tan bueno sería ver el contenido de su aplicación antes de que el usuario piense en abrirla? ¿Adivina qué? Esto es posible con el API de canales!En esta publicación, veremos una guía paso a paso con algunas ideas útiles sobre cómo crear y publicar contenido. Vista previa de los canales de su aplicación en la pantalla de inicio de Android TV y como lidiar con eso Interacción del usuario con tus canales. Asegúrese de consultar la aplicación de muestra con todos los conceptos de esta publicación. Android TV admite varios canales, desde canales ATSC y DVB, es decir, canales de cable, hasta otros estándares de canales satelitales. Hoy vamos a discutir un tipo específico de canal llamado canales de vista previa.Es posible que haya visto algunos si está familiarizado con la pantalla de inicio de Android TV. Cada vez que instala una aplicación y puede descubrir el contenido de la aplicación en la pantalla de inicio, es probable que vea una vista previa del canal. Los canales de vista previa se pueden entender simplemente como filas de contenido que su aplicación puede agregar a la pantalla de inicio del televisor. Aquí está la apertura de la documentación oficial:

“La pantalla de inicio de Android TV, o simplemente pantalla de inicio, proporciona una interfaz que muestra el contenido recomendado como una tabla de canales y programas. Cada fila es un canal. Un canal contiene entradas para todos los programas disponibles en ese canal”.

Contenidos

¡Mantenga a sus usuarios comprometidos!

Tener contenido relevante y actualizado en la pantalla de inicio es una forma efectiva de involucrar a los usuarios con su aplicación. A veces, lo único que no es hacer que el usuario regrese a su aplicación es un estímulo visual. Por esta razón Los canales de vista previa son muy atractivos. Con un vistazo a la pantalla de inicio, el usuario está a solo un clic de consumir el contenido de su aplicación.Ejemplo de un canal de vista previa

Nota: Los canales de vista previa solo están disponibles en Android TV 8.0 (API 26) y versiones posteriores. Si desea admitir una función similar en versiones anteriores, consulte la documentación de la fila de recomendaciones.

Todas las aplicaciones pueden ejecutarse CRUD (Crear, Leer, Actualizar y Eliminar) operaciones en canales usando las API de TvProvider y ContentProvider (cubriremos esto con más detalle más adelante). Sin embargo, para mostrar los canales en la pantalla de inicio, la aplicación debe pedir permiso al usuario, excepto para el primer canal publicado. un canal No será publicado, es decir, visible en la pantalla de inicio una vez creada. Para esto necesitamos pedir permiso al usuario. para publicar el canal.El primer canal creado por su aplicación se puede publicar sin pedir permiso al usuario. Llamamos al primer canal el «Por defecto» canal. Con eso en mente, es importante que nunca elimines tu canal predeterminado. De lo contrario, tenemos que pedirle permiso al usuario para volver a publicarlo. En su lugar, debe reutilizarlo, cambiar su información y contenido, y nunca eliminarlo ni recrearlo.

programas

Los canales sin contenido no son mucho. Ni siquiera aparecen en la pantalla de inicio. Para agregar contenido a los canales necesitamos crear programas Un programa se convierte en una tarjeta en una fila de canales.CRUD Las operaciones en los programas se realizan utilizando las mismas API de TvProvider y ContentProvider mencionadas anteriormente. Después de crear programas, debemos agregarlos a un canal para que su contenido esté disponible para los usuarios. Puede proporcionar mucha información sobre sus programas, p. títuloDescripción, TipoGénero, URL de vista previa de vídeo, miniaturaDuración, y la lista sigue… Dependiendo de la naturaleza de tu programa (ya sea una película, un capítulo de una serie, una temporada o algún otro tipo), alguna información es más relevante que otra. Tenga esto en cuenta al crear sus programas para brindar a sus usuarios la mejor experiencia. poder revisar la lista completa de atributos del programa para decidir cuál proporcionar aquí. Una vez que los programas se crean, se agregan a los canales y se publican, aparecen en la pantalla de inicio, donde los usuarios pueden acceder rápidamente a la página de inicio o directamente a su aplicación para reproducir un video o contenido.💡 ️Consejo: Antes de escribir cualquier código, considere cómo se puede estructurar su contenido en esta jerarquía de canales/programas.Comience agregando la dependencia de TvProvider a build.gradle.dependencies {…implementation ‘androidx.tvprovider:tvprovider:1.1.0-alpha01’} de su aplicación. Las implementaciones para crear o actualizar un canal son muy similares.

Nota: Cubriremos la función queryChannels() más adelante. Primero, suponga que se devuelven todos los canales de su aplicación.

Después de crear el canal, necesitamos usar ContentResolver para insertar o actualizar en la base de datos que utiliza el sistema para obtener información sobre los canales.

Publicar un canal

Como se mencionó anteriormente, crear un canal no es suficiente para hacerlo visible en la pantalla de inicio. Necesitamos pedir permiso al usuario para publicar el canal. El código para esto es muy simple: muestra al usuario un cuadro de diálogo que le pide que agregue el canal a la pantalla de inicio del televisor.

El canal predeterminado

Para crear el canal predeterminado, usaremos un BroadcastReceiver, que generalmente se activa una vez que se instala la aplicación. En casos excepcionales, solo se puede activar en el primer lanzamiento de la aplicación. Agregue lo siguiente a su AndroidManifest.xml. Y así es como podemos implementar el BroadcastReceiver:💡 Arriba: Observe la llamada a la función Channel.setInternalProviderId(). Esto le permite establecer la ID que usará su aplicación para identificar el canal. Dado que la ID del canal debe ser única entre todas las aplicaciones instaladas, la base de datos la genera y no podemos cambiarla. Es por eso que tenemos la API setInternalProviderId() para almacenar la identificación interna de su aplicación para este canal. Para probar su implementación de BroadcastReceiver, puede activar su intención a través de adb con el siguiente código: adb shell am broadcast -a android.media.tv.action .INITIALIZE_PROGRAMS -n \your.package.name/.YourReceiverName Um los canales de la aplicación para administrar Por lo general, necesitamos consultar sus datos para decidir qué información debe cambiarse, qué programas debemos agregar o eliminar, y cuáles no deben tocarse. Hay algunas formas y API para ayudarnos a hacer eso. Si desea un control completo y acceso a todos los datos de su canal, use la API ContentResolver y consulte la base de datos del canal para obtener la información exacta que necesita. Si solo necesita leer los conceptos básicos sobre su canal, puede usar la API PreviewChannelHelper.

Vista previaChannelHelper

Con PreviewChannelHelper, Tienen implementaciones listas para usar de los más comunes CRUD Operaciones con canales y programas. Es una capa de abstracción sobre las operaciones de bajo nivel que se pueden realizar con ContentResolver. Eche un vistazo a la documentación de las funciones disponibles. Al leer los datos del canal con PreviewChannelHelper, solo puede leer las columnas enumeradas en la matriz PreviewChannelHelper.Columns.PROJECTION que: Un canal tiene muchos más atributos Eche un vistazo a la función getProjection() en su código fuente para ver todos los atributos presentes. Un atributo muy útil es Channels.COLUMN_BROWSABLE, que indica si el canal ya está publicado o no. Esto le permite mostrar u ocultar un botón en su aplicación para eliminar el canal de la pantalla de inicio del televisor. Sin embargo, para consultar este valor desde la base de datos, debe usar ContentProvider.💡 ArribaNota: Para evitar la frustración y la pérdida de tiempo al depurar cosas como un valor de propiedad de canal que no tiene sentido, p. Por ejemplo, un canal que ya se ha publicado y cuya propiedad Channel.isBrowsable es falsa, tenga en cuenta que PreviewChannelHelper rellena las variables de instancia del canal con el resultado de la consulta de PROJECTION que se muestra arriba, que contiene información muy limitada. En otras palabras, las propiedades que no figuran en la proyección tienen el valor predeterminado de campo (falso para booleanos, 0 para números, etc.)

proveedor de contenido

Al usar las API de ContentProvider, tiene control total sobre los datos que desea consultar. Por ejemplo, si desea consultar todos los atributos de un canal, puede hacer lo siguiente:💡 Arriba: Revisa las implementaciones de las funciones PreviewChannelHelper y adáptalas a tus necesidades. La forma en que gestionamos los canales es muy similar a la gestión de los programas. Vea cómo podemos crear o actualizar un programa existente y agregarlo a un canal.💡 Arriba: Observe la llamada a la función PreviewProgram.Builder.setInternalProviderId(). Sigue la misma lógica que el creador de canales al proporcionar una forma de almacenar el ID de contenido en la aplicación en un programa.⚠️ Atención: Las operaciones CRUD del proveedor de contenido son operaciones de E/S. Para obtener el mejor rendimiento para su aplicación, asegúrese de ejecutar estas operaciones fuera del subproceso principal. Para concluir la sección de gestión de programas, observe la implementación de la función getChannelPrograms(). Manejar las acciones del usuario es básicamente manejar enlaces de aplicaciones. Cuando el usuario hace clic en un canal o programa, se envía una intención a su aplicación con el URI especificado durante la creación del canal/programa. Después de eso, básicamente navega a ese contenido en su aplicación. Empezar a añadir uno a un en el AndroidManifest.xml de su aplicación de la siguiente manera: Intent-filter para URI de canal/programa, y ​​agregue código para manejar la intención de su actividad o fragmento, por ejemplo: Manejo de intención de canal/programa

Deja una respuesta

Tu dirección de correo electrónico no será publicada.