Ist es möglich, alle android.view.Window
s oder Dekoransichten innerhalb einer Anwendung programmgesteuert aufzuzählen?Gibt es eine Möglichkeit, programmgesteuert alle Windows innerhalb einer bestimmten Anwendung zu finden?
Dialogs
zum Beispiel wird beide in einem neuen Window
, getrennt von der Hauptaktivität Fenster geöffnet. Ich kann sie über Dialog.getWindow()
finden, aber ich bin nicht sicher, wie ich dies mit einer eingebauten Komponenten wie dem Popup des Aktivitätsmenüs tun würde.
Gibt es eine Möglichkeit, aus einer Application
, Context
, oder der WindowManager
oder etwas anderes, die Windows mit meiner App zu enumerieren?
Ich kann alle meine Anwendungsfenster mit adb dumpsys window
sehen, aber ich bin auf der Suche nach einer Möglichkeit, dies innerhalb meiner Anwendung ohne root zu tun.
Das Fenster für das Aktivitätsmenü-Popup wäre das gleiche wie das der Aktivität, würde Activity.getWindow() nicht für Sie funktionieren? – kassim
Leider nein. Ich führe das android FingerPaint-Beispiel (auf 4.3) und nachdem ich auf die drei-Punkt-Menü-Taste tippen, und ich kann im Monitor sehen, dass das Popup in einem eigenen Fenster ist. Ich kann auch „adb shell dumpsys Fenster Token“ und sehen laufen, dass die Farbe App zwei Fenster mit ihm verbunden hat in der Tat: allAppWindows = [Fenster {418f9ce8 u0 com.example.paintsample/com.example.paintsample.PaintSample} , Fenster {41a06d08 u0 PopupWindow: 41ac65a0}] Gleiches gilt für Dialoge. –
Nur neugierig, warum brauchen Sie diese Informationen, oder vielmehr, was werden Sie damit machen, sobald Sie es haben? – Josh