为Android应用程序添加Samsung多窗口支持

时间:2013-01-01 13:54:10

标签: android samsung-mobile multi-window

我试着在link之后为我的应用添加三星的多窗口支持。我的应用程序确实出现在三星的多窗口应用程序选项卡中,我能够将其拖放到屏幕上,但是我的应用程序并不像多窗口支持的应用程序应该表现的那样,而是扩展到全屏。

我认为还需要进行一些其他更改才能使其正常工作,但我不知道是什么。有没有人有任何想法可能导致这种行为的问题?

4 个答案:

答案 0 :(得分:64)

This xda-developers forum post包含一个循序渐进的指南,我在此解释过。

确保您的清单在<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_Wcom.sec.android.multiwindow.MINIMUM_SIZE_H

通过维度资源指定维度的

One user pointed out对他不起作用;他改为硬编码了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。

答案 1 :(得分:3)

在Galaxy Note 3上测试我的应用程序后,我发现了另外两件事:

MINIMUM_SIZEDEFAULT_SIZE仅适用于三星平板电脑的MultiWindow,而不适用于智能手机。

此外,如果您想在应用程序中启用多实例,请将此行添加到AndroidManifest:

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

答案 2 :(得分:0)

另外值得注意的是,为您的应用启用Pen Window(多窗口系统的一部分),以及此处所述的多窗口和多实例(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上工作(如上所述)(我使用了上面修改过的代码)。在笔窗口中,您必须先点击编辑并将应用程序从底部拖动到Pen Window Launcher屏幕,然后才能使用它。

答案 3 :(得分:0)

要在Android 7及更高版本上支持多窗口,只需在清单的“活动”或“应用”元素中将此android:resizeableActivity设置为true:

android:resizeableActivity="true"

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