Para los que no lo sepais, Google Chromecast es un dispositivo que se conecta al puerto HDMI de cualquier dispositivo y permite ver contenido enviado desde tu telefono o tablet en tu TV, Proyector o monitor

Recientemente he adquirido uno y he empezado a trastear con el para ver como se pueden crear aplicaciones que se visualicen en Chromecast. Con los siguientes pasos tu tambien podras crear un Hola Mundo y partir desde aqui para seguir con el desarrollo de aplicaciones mas complejas

Requisitos para desarrollar en Chromecast

  • Chromecast: Evidentemente necesitas tener un dispositivo Chromecast conectado a algun receptor HDMI y configurado. La configuracion es muy sencilla y solo necesitas conectarlo y usar la aplicacion de Chromecast de Android o iOS
  • Android SDK: Necesitas tener descargado el SDK de Android
  • Google Play Services library: Mas adelante tendremos que añadir esta libreria a nuestro proyecto
  • v7 mediarouter library: Esta libreria es necesaria para usar Chromecast. Solo es necesario para Android
  • iOS Sender API: Si vas a usar iOS para desarrollar tu aplicacion necesitaras esta libreria
  • Registrarte como desarrollador Chromecast y registrar tu dispositivo: Desde esta pantalla podras registrarte como desarrollador Chromecast por $5. Sigue las instrucciones para registrar tu Chromecast y poder empezar a desarrollar

Configurando la aplicacion

Para este tutorial vamos a crear una aplicacion Android usando Eclipse. Se puede usar cualquier IDE pero yo lo voy a hacer con Eclipse porque es el que mas uso

Creamos un nuevo proyecto de tipo Android Application Project. El nombre de aplicacion y del proyecto sera HelloChromecast. Como paquete ponemos es.rubenjgarcia.hellochromecast

Vamos con las opciones de la aplicacion. El Minimun Required SDK a usar sera la API 9 (Android 2.3 Gingerbread). En Target SDK y Compile with usaremos la API 19 (Android 4.4 KitKat) que es la actual en este momento. Pulsamos en siguiente y desmarcamos la opcion Create activity. Pulsamos siguiente donde veremos la pantalla de creacion de iconos y pulsamos Finalizar

Hay que importar las librerias necesarias a nuestro workspace para poder referenciarla. La primera que importaremos sera la de Google Play Services. Importa la libreria como Existing Android Code into Workspace e importarla desde la siguiente ruta: $ANDROID_SDK_HOME/extras/google/google_play_services/libproject/google-play-services_lib

Con el boton derecho pincha en tu proyecto y luego en Propiedades. En la seccion de Android, en la zona de Library pulsa el boton de Añadir y añade el proyecto google_play_services_lib

Haz lo mismo para la libreria v7-mediarouter. Esta se encuentra en $ANDROID_SDK_HOME/extras/android/support/v7/mediarouter. Es posible que te de el siguiente error la libreria:

error: Error retrieving parent for item: No resource found that matches the given name 'Widget.AppCompat.ActionButton'

Si te muestra ese error importa la libreria $ANDROID_SDK_HOME/extras/android/support/v7/appcompat y añadela a la libreria v7-mediarouter. Si aun asi tienes otro error como este

error: No resource identifier found for attribute 'paddingEnd' in package 'android'

Tendras que editar en el AndroidManifest.xml de libreria v7-mediarouter y cambiar el tag uses-sdk de la siguiente manera

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19"/>

Una vez configurado todo debemos crear todo lo necesario para nuestra aplicacion. Para facilitar este trabajo y no hacer muy largo el post he creado un repositorio en Github donde podeis hacer un fork y experimentar vosotros mismos

Este codigo esta inspirado en el codigo del repositorio Github de Chromecast

Para que puedas probar tu aplicacion en tu Chromecast es necesario que des de alta tu Chromecast en la pagina de desarrollador de Chromecast y que crees una aplicacion de tipo Custom Receiver para cambiar el ID de la aplicacion en el archivo strings.xml del proyecto. Cuando estes dando de alta la aplicacion, debes poner la url donde esta alojado el archivo receiver.html que hay en la carpeta receiver. No es necesario que tengas un hosting ya que si tienes cuenta en Google Drive siguiendo estas instrucciones podras hacer que sea publico a todo el mundo y que funcione tu aplicacion

Lo que hace la aplicacion es enviar el texto escrito en la caja de texto de la aplicacion movil al Chromecast y lo saca por pantalla. Es un ejemplo sencillo pero que te puede dar una idea de como funciona el SDK de Chromecast para que crees aplicaciones mas complejas