当Android7.0发布时,他们说有一个自由格式的多窗口模式选项,大致类似于传统的窗口桌面OSes的工作方式(多个重叠的可调整大小的窗口):
大型设备的制造商可以选择启用自由格式模式,在这种模式中,用户可以自由地调整每个活动的大小。如果制造商启用此功能,则该设备除了提供分屏模式外,还提供自由格式模式。
然而,他们没有为这种模式提供任何官方环境。
我知道至少有两种安卓7.0+环境,它们的形式相当于自由的多窗口模式:
两者都提供多个重叠的可调整大小的窗口。然而,他们的行为是不一样的。例如,DeX为窗口托管活动提供了一个“旋转”标题栏选项,这些活动不被宣传为可以调整大小,从而将窗口从纵向翻转到横向。Chrome免费的多窗口实现缺乏这一点。
一种在安卓7.0+设备(如Nexus 9)上获得官方自由格式多窗口模式的非官方方法是通过adb shell settings put global enable_freeform_support 1。但是,当我在Chrome或DeX环境上运行DeX时,我会返回null,这意味着没有设置此设置。
问题在于,Chrome和DeX本身都非常“怪异”,很可能在Android7.0之上实现了它们自己的半私有自由格式多窗口模式。毕竟,Chrome上的有其原有的基于Android6.0的发行版,而三星在Android7.0之前的一些设备上提供了两屏多窗口模式。
那么,是否有明确的方法来判断一个特定的Android环境--一个自由的多窗口用户界面--是否使用的是官方的Android 7.0+免费多窗口实现,而不是其他什么?
发布于 2017-06-21 16:08:56
SystemUI使用以下方法来确定是否可用自由格式多窗口模式:
mHasFreeformWorkspaceSupport =
mPm.hasSystemFeature(PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT) ||
Settings.Global.getInt(context.getContentResolver(),
DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, 0) != 0;DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT是隐藏的,所以您需要用"enable_freeform_support"替换它。
boolean hasFreeFormWorkspaceSupport =
getPackageManager().hasSystemFeature(PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT) ||
Settings.Global.getInt(getContentResolver(), "enable_freeform_support", 0) != 0;我没有Android on Chrome或DeX来测试这一点,然而,SystemUI是如何检查是否启用了自由格式的多窗口支持的。也许您可以从DeX或Chrome中解压缩设置或systemui应用程序,并检查它们是否在这里进行了更改。
https://stackoverflow.com/questions/44631867
复制相似问题