问题描述
参考https://docs.microsoft.com/en-us/dual-screen/android/platform/jetpack-window-manager,我这样初始化窗口管理器:
wm = WindowManager(this,null)
并被调用
wm.registerDeviceStateChangeCallback
DeviceStateChangeCallback 中实现的accept 方法在我不在真正的华为可折叠设备上更改模拟器的屏幕大小时被调用。
谁能告诉我原因,请!
解决方法
Window Manager (WM) 有几个特定组件:androidx.window.sidecar 和 androidx.window.extensions,它们必须由 OEM 实施才能提供窗口管理器支持。
不确定您是否使用 Surface Duo 模拟器,因为您链接到它的文档,但是如果您在 Surface Duo 模拟器/设备中测试您的代码,您将能够获得 WM 信息 --> Surface Duo 已经支持设备和模拟器的 WM。
可能是华为为可折叠模拟器提供了 WM 支持,但尚未为设备提供支持 --> 使用适用于华为可折叠模拟器或 Surface Duo 模拟器/设备的相同代码时,您不会获得 WM 信息。