web-dev-qa-db-fra.com

Ajout du support multi-fenêtre de Samsung à l'application Android

Je suis allé et j'ai essayé d'ajouter le support multi-fenêtre de Samsung pour mon application en suivant ce lien - link . Mon application est apparue dans l'onglet Applications multi-fenêtres de Samsung et j'ai été en mesure de la faire glisser à l'écran. Toutefois, mon application ne s'est pas comportée de la même manière qu'une application compatible avec plusieurs fenêtres devrait se comporter, mais étendue en plein écran.

Je pense qu'il y a d'autres changements à faire pour que cela fonctionne correctement, mais je n'ai aucune idée de quoi. Quelqu'un a-t-il une idée du problème qui pourrait être à l'origine de ce comportement?

25
Rohit Malish

Ce message sur le forum des développeurs xda contient un guide étape par étape, que j'ai paraphrasé ici.

Assurez-vous que votre manifeste contient les éléments suivants quelque part dans la balise <application>:

<uses-library Android:required="false" Android:name="com.sec.Android.app.multiwindow" />
<meta-data Android:name="com.sec.Android.support.multiwindow" Android:value="true" />
<meta-data Android:name="com.sec.Android.multiwindow.DEFAULT_SIZE_W" Android:resource="@dimen/app_defaultsize_w" />
<meta-data Android:name="com.sec.Android.multiwindow.DEFAULT_SIZE_H" Android:resource="@dimen/app_defaultsize_h" />
<meta-data Android:name="com.sec.Android.multiwindow.MINIMUM_SIZE_W" Android:resource="@dimen/app_minimumsize_w" />
<meta-data Android:name="com.sec.Android.multiwindow.MINIMUM_SIZE_H" Android:resource="@dimen/app_minimumsize_h" />

Pour l'activité souhaitée, ajoutez à sa balise <intent-filter>:

<category Android:name="Android.intent.category.MULTIWINDOW_LAUNCHER" />

Assurez-vous de définir les dimensions ci-dessus dans un fichier de ressources.

Dans la section des commentaires de cet article de blog, un utilisateur indique que la taille minimale lui posait problème et suggère de supprimer com.sec.Android.multiwindow.MINIMUM_SIZE_W et com.sec.Android.multiwindow.MINIMUM_SIZE_H.

Un utilisateur a signalé que la spécification des dimensions via une ressource de dimension ne lui convenait pas; il a plutôt codé en dur l'attribut value:

<uses-library Android:required="false" Android:name="com.sec.Android.app.multiwindow" />
<meta-data Android:name="com.sec.Android.support.multiwindow" Android:value="true" />
<meta-data Android:name="com.sec.Android.multiwindow.DEFAULT_SIZE_W" Android:value="632.0dip" />
<meta-data Android:name="com.sec.Android.multiwindow.DEFAULT_SIZE_H" Android:value="598.0dip" />
<meta-data Android:name="com.sec.Android.multiwindow.MINIMUM_SIZE_W" Android:value="632.0dip" />
<meta-data Android:name="com.sec.Android.multiwindow.MINIMUM_SIZE_H" Android:value="598.0dip" />

J'ai bien peur de ne pas pouvoir m'essayer moi-même car je n'ai pas de Galaxy Note.

64
Paul Lammertsma

Après avoir testé mon application sur Galaxy Note 3, j'ai découvert deux autres choses:

MINIMUM_SIZE et DEFAULT_SIZE ne fonctionnent que sur MultiWindow pour les tablettes Samsung, pas sur les smartphones.

De plus, si vous souhaitez activer la multi-instance dans votre application, ajoutez cette ligne à votre AndroidManifest:

<meta-data
            Android:name="com.samsung.Android.sdk.multiwindow.multiinstance.enable"
            Android:value="true" />
3
Tony Ceralva

Il est également intéressant de noter l'activation de Pen Window (partie du système multi-fenêtres) pour votre application, ainsi que Multi-Window et Multi-Instance, comme indiqué ici ( http://forum.xda-developers.com/showthread.php ? t = 2499720 ):

<meta-data Android:name="com.samsung.Android.sdk.multiwindow.penwindow.enable" Android:value="true" />

et ajoutez le code Launcher à votre activité:

<category Android:name="Android.intent.category.PENWINDOW_LAUNCHER" />

En guise de remarque concernant le code du programme de lancement, la publication xda l’a répertoriée avec le préfixe com.samsung, mais j’ai été incapable de la faire fonctionner sur mon N3 comme décrit ici (j’ai utilisé le code modifié ci-dessus). Dans la fenêtre du stylet, vous devez appuyer sur Modifier et faire glisser votre application du bas vers l'écran du lanceur de la fenêtre du stylet avant de pouvoir l'utiliser.

0
JCricket

Pour prendre en charge le multi-fenêtre sur Android 7 et versions ultérieures, définissez simplement cet objet Android: resizeableActivity sur true dans l'élément 'activity' ou 'application' de votre manifeste:

Android:resizeableActivity="true"

https://developer.Android.com/guide/topics/ui/multi-window.html

0
Regis_AG