Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

Убедитесь, что ваш манифест содержит следующее в теге <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" />

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

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

Боюсь, я не могу попробовать себя, так как у меня нет заметки о галактике.

Ответ 2

После тестирования моего приложения на 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" />

Ответ 3

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

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

и добавьте код Launcher в вашу деятельность:

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

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

Ответ 4

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

android:resizeableActivity="true"

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