微信视频小窗口在USER版本设置二级菜单中不显示问题分析

本文分析了微信视频小窗口在Android USER版本的设置二级菜单中不显示的问题。通过日志和代码研究,发现是由于SettingsBaseActivity的子类在用户版本上调用了设置HIDE_NON_SYSTEM_OVERLAY_WINDOWS标志,导致视频窗口被隐藏。此行为仅在USER版本上生效,USER-debug版本不受影响,可能与安全性和辅助功能测试有关。
摘要由CSDN通过智能技术生成

刚看到问题现象时,怀疑是微信视频/QQ视频小窗口在进入设置二级及之后菜单时,有报错,或者是有权限异常导致,但分析main log并没有发现报错,仅发现:

Line 5563: 02-24 16:29:54.336  1353  1475 W WindowManager: TaskSnapshotSurface.create: Failed to find main window for token=AppWindowToken{5685e24 token=Token{d13d6b7 ActivityRecord{7a459b6 u0 com.tencent.mm/.plugin.voip.ui.VideoActivity t22}}}

但这句log是在VideoActivity启动时打印,仅仅与Activity启动窗口动画有关,而悬浮小窗口,从activity 堆栈看并非一个activity;

再次对比window信息:

adb shell dumpsys window

QQ小窗口在设置主界面打印出来的Window信息:

Window #3 Window{f5027ac u0 Toast}:

    mDisplayId=0 stackId=0 mSession=Session{fa39ee5 7778:u0a10152} mClient=android.os.BinderProxy@aca55fe

    mOwnerUid=10152 mShowToOwnerOnly=true package=com.tencent.mobileqq appop=SYSTEM_ALERT_WINDOW

    mAttrs={(212,30)(230x346) gr=TOP LEFT CENTER sim={adjust=pan} ty=APPLICATION_OVERLAY fmt=TRANSLUCENT

      fl=NOT_FOCUSABLE KEEP_SCREEN_ON HARDWARE_ACCELERATED

      pfl=NO_MOVE_ANIMATION}

    Requested w=230 h=346 mLayoutSeq=9487

    mHasSurface=true isReadyForDisplay()=true mWindowRemovalAllowed=false

    WindowStateAnimator{8452b38 Toast}:

      Surface: shown=true layer=0 alpha=1.0 rect=(0.0,0.0) 230 x 346 transform=(1.0, 0.0, 1.0, 0.0)

    mForceSeamlesslyRotate=false seamlesslyRotate: pending=null finishedFrameNumber=0

    isOnScreen=true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值