Добавление поддержки нескольких окон 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