有誰知道檢測狀態欄是否從輔助功能服務可見的任何好方法? (具體來說,檢測鎖定屏幕和通知面板之間的差異,或最近的應用程序屏幕和音量彈出)從輔助功能服務中檢測狀態欄的可見性
我已經添加了一個視圖,通過WindowManager檢測佈局更改並將其高度與屏幕,但是這在任何情況下都不起作用。
我還沒有找到任何可靠的方法來檢測哪個systemui屏幕是哪個或是否狀態欄在其中任何一個可見。通知面板通常具有類名「android.widget.FrameLayout」,這是我一直用來檢測它到現在爲止,但這有時會誤識別鎖定屏幕或音量彈出窗口作爲通知面板。只要找出ComponentName是否導致活動就足以排除鎖定屏幕(主要)和最近的應用程序。但是,音量面板有時會顯示在狀態欄上,有時會根據製造商顯示在下面(我想避免必須以任何費用製作不同設備的數據庫)。我似乎也無法檢測到音量面板關閉;我只在打開時收到一個事件。
如果我能得到可訪問事件源的主題,我可能會使用'android:windowFullscreen'屬性來解決整個問題,但我只找到了一種方法來執行此操作。如果你想看看我正在工作的略有混亂的源代碼,這裏的鏈接:https://github.com/TheAndroidMaster/Status