Cómo añadir soporte para Samsung multiventana y modo PopUp en tu aplicación Android

Cómo añadir soporte para Samsung multiventana y modo PopUp en tu aplicación Android

Con los últimos y más modernos dispositivos móviles Samsung y la introducción de Android/Samsung multiventana y el modo PopUp, podrás dividir la pantalla de tu dispositivo y usar más de una aplicación a la vez (para aquellos que les gusta escuchar música en YouTube mientras usan WhatsApp). Una característica muy util e importante para los multitareas.

Todos los teléfonos modernos tienen la capacidad multitarea y claramente hay otros dispositivos mejores que otros. La característica multiventana no es nueva y no se encuentra en pruebas, pues es realmente estable y confiable para su uso.

Pero no solamente es el hardware lo que marca la diferencia, sino también el software. Menciono esto pues para una aplicación Android recien creada usando Android Studio (o aplicaciónes híbridas), no permitirán usar al usuario estos modos automaticamente, necesitarás solicitar (en caso de que existan) los derechos para acceder a esta característica.

Características

La utilidad multiventana provee 2 modos como se muestra a continuación:

Pantalla dividida

Dos aplicaciónes pueden compartir la pantalla sin sobreponerse la una a la otra. Puedes ajustar el tamaño y la posición para una de las aplicaciónes (superior e inferior en orientación vertical ó derecha e izquierda en orientación horizontal) mientras la otra aplicación tomará el espacio que resta en la pantallla.

Pantalla dividida aplicación android en samsung

Modo PopUp

Dos o más aplicaciónes pueden flotar en la pantalla. Pueden ser sobreponerse parcialmente la una a la otra. Puedes mover y redimensionarlas individualmente sin afectar a las otras.

Modo popup pantalla flotante android

Activando característica

Para activar estas características necesitarás modificar tu manifiesto de Android AndroidManifest.xml y agregar los siguientes tags en el:

<!--
 Este tag debe ir dentro del primer tag de intent-filter : <intent-filter android:label="@string/launcher_name">
-->
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

<!--
    Agrega la libreria multiventana (solo si está disponible) usando android:required=false
    para soportar tambien otros dispositivos, fuera del tag activity : <activity> pero dentro
    del tag de application <application>.
-->
<uses-library android:name="com.sec.android.app.multiwindow" android:required="false" />
<meta-data android:name="com.samsung.android.sdk.multiwindow.penwindow.enable" android:value="true" />
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />

Al añadir estos tags, tu manifiesto Android lucira similar a (observa las lineas verdes):

Android Manifiesto multiventana

El primer tag <category ... > creará un launcher (ícono) de tu aplicación en la barrá que aparece cuando una aplicación es activada en modo de pantalla dividida y en la que solo aparecen aplicaciónes que soportan esta característica. Recuerda que si quieres que tu aplicación aparezca en la parte inferior donde se listan las aplicaciones cuando una aplicación es lanzada en pantalla dividida, necesitarás reiniciar tu dispositivo (solo en modo de pruebas, cuando publiques tu aplicación el Android Package installer se encargará de esto sin reiniciar el dispositivo del usuario).

El segundo tag <uses-library ... > es el punto más importante para activar esta funcionalidad. El uso de un tag uses-library especifíca una libreria compartida (que generalmente viene incluida en el dispositivo) que debe ser enlazada con nuestra aplicación. Este elemento le dice a Android que incluya la libreria en el cargador de clases para nuestra aplicación. Como probablemente, tu aplicación no solamente va dirigida a usuarios de Marshmallow o dispositivos no Samsung, necesitas especificar el atributo android:required a falso con el fin de proporcionar soporte a dispositivos que no soportan esta característica como KitKat, Lollipop.

Si el atributo android:required es dejado en verdadero, el Package Manager de android no te dejará instalár la aplicación a menos que la libreria esté disponible en tu dispositivo.

Finalmente como tercer y cuarto tag que te permitén activar la funcionalidad multiventana y popup. Así el usuario podrá usar estas funciones facilmente en tu aplicación.

Prueba a compilar tu aplicación y a probar en tu dispositivo Marshmallow, que te diviertas !

Esto podría ser de tu interes

Conviertete en un programador más sociable