adb shell dumpsys window windows output describing
Asked Answered
T

2

8

I'm using appium for interaction between my Android device and java code. And I faced with problem that on some kind of devices(including emulators) after pressing on Home button, appium return incorrect current activity (it returns previous activity which is currently must be minimized). I found that appium used dumpsys window windows with grabbing mFocusedApp value for getting current app. I read another answers about getting Android current activities, and mostly it recommend to use:

adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"

That was the source of the problem, because after pressing Home button mCurrentFocus and mFocusedApp linked to different activities. But I can't find any explanation the difference between these fields. And why appium uses only mFocusedApp for it?

Thankful answered 28/9, 2016 at 19:36 Comment(1)
The question why appuim uses only mFocusedApp? calls for speculation and is an off-topic here.Interleaf
I
10

The explanation of the difference between mCurrentFocus and mFocusedApp stares right at you:

$ dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
    mCurrentFocus=Window{X uX package/.activity}
    mFocusedApp=AppWindowToken{X token=Token{X ActivityRecord{X uX package/.activity tX}}}

The mCurrentFocus is a Window (just a view which may or may not have an ActivityRecord associated with it)

The mFocusedApp is an AppWindowToken (an app Token which will always have an ActivityRecord)

So when input focus switches to a view with an activity - both mCurrentFocus and mFocusedApp would show the same activity. But sometimes focus switches to a view without an activity (like parts of SystemUI, etc) - then mCurrentFocus will be showing that view but mFocusedApp will still be showing the ActivityRecord of the app which had the focus before the last switch.

Interleaf answered 29/9, 2016 at 15:20 Comment(0)
H
1

Try this: For windows:

adb shell dumpsys window | find "mCurrentFocus" 

For MAC:

adb shell dumpsys window | grep -E 'mCurrentFocus' 
Housecoat answered 2/9, 2022 at 10:33 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.