Как получить имя текущей (переднего плана) активности?

Привет! Я пытаюсь включить автоматический ночной режим для своего телефона с помощью «Автоматизация», но не могу найти определенные действия в приложении. Как мне узнать, какие действия выполняются на переднем плане в данный момент, чтобы я мог их запустить?

Законный вопрос, но вы, вероятно, захотите отредактировать его, чтобы убедиться, что он не выглядит не по теме. (Позвольте мне сделать это для вас на этот раз, надеюсь, я правильно понял) // Не имеет отношения к делу: это «хой» очень похоже на Темми.
Забыл добавить: не стесняйтесь редактировать сверху или даже выполнять откат, если я неправильно выразился - это все-таки ваш пост.

Ответы (2)

Использование приложений: Текущая активность и некоторые подобные приложения будут отображать информацию в виде плавающих текстов над содержимым экрана.

Используя adb(с вашего ПК): dumpsys window windows | grep -E 'mCurrentFocus', или dumpsys activity top(для полной информации, предназначенной для разработчиков)

Примечание: этоadb shell ...

Чтобы добавить к ответу @AndyYan, вы также можете использовать приложение эмулятора терминала, если у вас нет компьютера, но есть привилегии root. В этом случае выполните suсначала. Затем, чтобы сбросить сфокусированную активность, команда

dumpsys activity activities | grep mFocusedActivity

Команда, если, например, выполняется из эмулятора терминала , дает следующий вывод:

  mFocusedActivity: ActivityRecord{415c7ae u0 jackpal.androidterm/.Term t96}

Однако приведенная выше команда, как указал Энди, просто показывает собственную активность Терминала. Однако, чтобы дать себе достаточно времени, чтобы открыть приложение, которое вы хотите исследовать, вам нужно добавить

sleep <seconds> && 

перед фактической dumpsysкомандой, заменив <seconds>на количество секунд, в течение которых оболочка должна ждать. Таким образом, пример полной команды будет напоминать

sleep 10 && dumpsys activity activities | grep mFocusedActivity

После выполнения команды откройте приложение, которое вы хотите исследовать, и держите его на переднем плане в течение указанного вами количества секунд. По истечении времени оболочка сообщит имя активности.


Я не связан с вышеупомянутым приложением.

@AndyYan Кто сказал, что нельзя? Это просто вопрос добавления sleep x && before dumpsys(x должен быть заменен на количество секунд, которое может ждать терминал), чтобы можно было открыть приложение, которое нужно исследовать, и позволить терминалу обработать все остальное. Я добавлю это к ответу позже.
(facepalm) Очевидно, я не терминальный гуру...
@AndyYan Я тоже. iBug это тот самый.