android - 检查多窗口支持

标签 android android-7.0-nougat multi-window

我在检查设备是否支持多窗口模式时遇到问题。我正在使用此函数来检查它 isInMultiWindowMode() 但它已添加到 API 24 中,当我在具有较低 api 版本的设备上运行我的应用程序时,它会导致异常。对于较低的 api 版本,有什么替代函数吗?

最佳答案

There is any replacement for this function for lower api versions?

不在 Android SDK 中。 API Level 23 之前没有多窗口模式(从 Android SDK 的角度来看)。并且,无论出于何种原因,Google 选择不将 isInMultiWindowMode() 添加到 ActivityCompat ,可能是因为它们无法支持相应的事件 (onMultiWindowModeChanged())。

所以,这里有一个免费更换方法:

public static boolean isInMultiWindowMode(Activity a) {
  if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
    return false;
  }

  return a.isInMultiWindowMode();
}

将其添加到某个实用程序类中,并根据需要调用它。

另请注意,isInMultiWindowMode() 会受到 a race condition 的影响。恕我直言,这使得它不可靠。

关于android - 检查多窗口支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41776549/

相关文章:

安卓后台/缓存进程

android - 使用一个启动器在分屏中启动我的两个应用程序 - Android

android - 是否有任何 API 可以识别应用程序在三星设备中处于多窗口模式?

android:不需要的 Activity 显示在主要 Activity 之前

java - View 设置为 GONE 时不调用 Android onScrolled

java - 尝试跟踪使用 CheckBox 的标记项目?

java - Android 8+ -如何在 android 中以编程方式连接到 wifi 网络?

android - 在 Android Emulator API 24 Nougat 中更改 SimCountryIso

Android 7 GraphicBuffer 替代方案,用于直接访问 OpenGL 纹理内存

python - 使用多处理创建两个 pygame 屏幕