Добавление многооконной поддержки Samsung в приложение Android
Я пошел и попытался добавить поддержку мультиокна Samsung для моего приложения по этой ссылке. Мое приложение появилось на вкладке многооконных приложений Samsung, и я смог перетащить его на экран, однако мое приложение не работало так, как должно работать приложение, поддерживаемое несколькими окнами, а развернулось на весь экран.
Я думаю, что есть некоторые другие изменения, которые необходимо внести, чтобы заставить его работать должным образом, но я понятия не имею, что. У кого-нибудь есть идеи, в чем может быть проблема, вызывающая такое поведение?
4 ответа
Этот пост на форуме 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" />
Боюсь, я не могу попробовать себя, потому что у меня нет 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" />
Также стоит отметить, что Pen Window (часть многооконной системы) для вашего приложения, наряду с 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, как описано там (я использовал измененный код выше). В окне пера вам нужно будет нажать "Редактировать" и перетащить свое приложение снизу на экран "Панели пера", прежде чем вы сможете его использовать.
Чтобы поддерживать многооконный режим на Android 7 и выше, просто установите для android:resizeableActivity значение true в элементе "активность" или "приложение" вашего манифеста:
android:resizeableActivity="true"
https://developer.android.com/guide/topics/ui/multi-window.html