[Android黑屏] 双屏幕副屏错误映射主屏内容

142 阅读1分钟

问题: 双屏双用户,启动两个应用实例,副屏幕点击空白区域后显示主屏幕内容 -> 副屏Display锁屏状态异常

分析:

  1. dumpsys window animator观察Top Window是否存在 => 存在,无异常退出
  2. dumpsys window查看Top Window的状态, isVisible, isOnScreen => 可见
  3. dumpsys activity查看对应Activity状态 => 正常
  4. dumpsys display对比正常异常状态 => mViewports(物理Display上的显示状态)出现异常,两个同时显示 displayId 0 的内容
  5. 分析mViewports显示逻辑 => 副屏displayHasContent false时会显示默认屏幕内容
  6. 锁屏解锁后未设置DisplayPolicy中锁屏状态

方案: 自定义锁屏应用解锁时,应调用KeyguardService回调设置锁屏显示状态为false