Добавление поддержки нескольких окон Samsung в Android-приложение

Я пошел и попытался добавить поддержку нескольких окон Samsung для моего приложения после этого ссылке. Мое приложение появилось на вкладке многооконных приложений Samsung, и я смог перетащить его на экран, однако мое приложение не вело себя так, как должно вести себя приложение с поддержкой нескольких окон, а вместо этого расширилось до полного экрана.

Я думаю, что есть некоторые другие изменения, которые необходимо сделать, чтобы заставить его работать должным образом, но я понятия не имею, что. У кого-нибудь есть идеи что может быть причиной такого поведения?

4 ответов


это сообщение форума XDA-разработчиков содержит пошаговое руководство, которое я перефразировал здесь.

убедитесь, что ваш манифест содержит следующие где-то внутри <application> tag:

<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" />

для желаемого действия добавьте к нему <intent-filter> tag:

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

обязательно определите указанные выше измерения в файле ресурсов.

в разделе комментариев этого блога пользователь упоминает, что минимальный размер вызывал проблема для него и предложила удалить com.sec.android.multiwindow.MINIMUM_SIZE_W и com.sec.android.multiwindow.MINIMUM_SIZE_H.

один пользователь указал это указание измерений через ресурс измерения не сработало для него; вместо этого он жестко закодировал атрибут 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" />

боюсь, я не могу попробовать себя, так как у меня нет Galaxy Note.


после тестирования моего приложения на Galaxy Note 3 я узнал еще две вещи:

MINIMUM_SIZE и DEFAULT_SIZE работает только на MultiWindow для планшетов Samsung, а не в смартфонах.

также, если вы хотите включить Multi-Instance в своем приложении, добавьте эту строку в свой AndroidManifest:

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

также стоит отметить, что для вашего приложения включено окно пера (часть многооконной системы), а также боковое Многооконное и много Экземплярное, как указано здесь (http://forum.xda-developers.com/showthread.php?t=2499720):

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

и добавьте код запуска в свою деятельность:

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

в качестве примечания к коду запуска, сообщение xda имеет его в списке с com.samsung префикс, но я не мог заставить его работать на моем N3, как описано там (я использовал измененный код выше.) В окне пера вам нужно нажать "правка" и перетащить приложение снизу на экран запуска окна пера, прежде чем вы сможете его использовать.


чтобы поддерживать multi window на Android 7 и выше, просто установите этот android: resizeableActivity в true в элементе "активность" или "приложение" вашего манифеста:

android:resizeableActivity="true"

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