DroidCon Paris 2014 – Support multi-écran dans Android

Première journée du DroidCon Paris 2014 !

Et première présentation sur le support du pulti-écran sur Android.

L’objectif

Qu’est-ce qu’on peut faire avec ce machin ? Pour commencer, le multi écran, c’est pas nouveau, et grâce aux cables HDMI et HML, on peut depuis longtemps diffuser son contenu sur un autre écran – genre j’ai toujours un xperia S alors je sais de quoi je parle quand je dis « depuis longtemps » 😉 .
Cette présentation avait pour but de nous montrer l’état de l’art dans deux domaines : les outils physiques (les dongle) et les API.
Propulser son contenu sur un écran déporté, toi aussi développeur tu vas pouvoir le faire, et tu pourras même avoir un affichage sensiblement différent entre ton device et l’écran connecté.

Les moyens techniques du screencast

Aujourd’hui, on parle de deux technologies :

Chromecast, la solution de Google, permet de se connecter via un réseau wi-fi existant, avec comme point fort : pas besoin d’appareils compatibles.

Miracast est intégré aux devices récents, et permet de se connecter sans avoir de réseau wi-fi existant. Au passage, ça permet un temps de latence très bas, pour une technologie sans fil. Problème potentiel : avoir un écran compatible avec la norme. Cette technologie a pour vocation de s’étendre dans les objets connectés, et doit permettre également de gérer des devices secondaires, comme un clavier, via l’USB Input Back Channel.

Les API Android de screencast

On entre là dans la partie intéressante, qui frise assez sérieusement avec l’expérimentation, un peu comme quand on cause de développement Android Wear ou Google Glass… la doc existe, mais elle est parfois un peu farfelue.
On note quand même que Miracast est disponible sur Android depuis l’API level 17 (4.2).
En gros comment ça marche, on a une classe qui est très proche de Dialog : la classe Presentation du MediaRouter. Il existe une autre classe, mais cette présentation ne s’étendait pas sur le sujet.
Le MediaRouter ramène une « route » de type video, laquelle expose – si il existe – un Display. Ce Display est injecté en paramètre de la Presentation, la méthode .show() fait le reste.

Au final, quelques lignes de code et on est capable de projeter son contenu !
Tout un ensemble de méthodes de callback permettent de gérer le cycle de vie, en particulier les problèmes de connexion.

Au final, une présentation simple et claire de Xavier Hallade, avec Intel qui est venu en force à ce DroidCon 2014 !