Android11 SystemUI如何判断是哪个应用隐藏的状态栏
时间: 2024-05-05 09:21:58 浏览: 12
Android 11 中的 SystemUI 可以通过以下方式判断是哪个应用隐藏了状态栏:
1. 获取当前 Activity 所在的应用包名:
```java
String packageName = getPackageName();
```
2. 通过 `WindowInsets.getHidingBehavior()` 方法获取 `WindowInsets` 对象,并判断是否为 `HidingBehavior.HIDE_BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE`:
```java
WindowInsets windowInsets = getWindow().getInsets(WindowInsets.Type.statusBars());
if (windowInsets != null && windowInsets.getHidingBehavior() == HidingBehavior.HIDE_BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE) {
// 状态栏被隐藏
}
```
如果状态栏被应用隐藏,则 `HidingBehavior.HIDE_BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE` 表示状态栏会在用户滑动屏幕时短暂显示。
3. 通过 `WindowInsets.getImeVisibility()` 方法获取输入法是否可见:
```java
int imeVisibility = windowInsets.getImeVisibility();
if (imeVisibility == WindowInsets.Type.ime()) {
// 输入法可见
}
```
如果输入法可见,则 `WindowInsets.Type.ime()` 会返回 `true`。
通过以上步骤,可以确定是哪个应用隐藏了状态栏。