我正在创建一个屏幕锁定应用程序。我想隐藏状态栏,以便用户无法看到状态栏并通过它打开其他应用程序。我已成功隐藏状态栏,但是当您从屏幕顶部拖动时,它会再次出现。
我正在关注Android开发人员的Hide the Status Bar on Android 4.1 and Higher。
代码是:
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
所以即使从屏幕顶部滑动,我怎么也不允许显示状态栏。
答案 0 :(得分:0)
这可以使用反射。但是有很多问题。
无法检查通知面板是打开还是打开。所以,我们必须依赖Activity#onWindowFocusChanged(boolean)。这就是问题的开始。
public void onWindowFocusChanged (boolean hasFocus) Called when the current Window of the activity gains or loses focus. This is the best indicator of whether this activity is visible
给用户。
首先,您需要EXPAND_STATUS_BAR权限:
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
取自Disable the notification panel from being pulled down
对于KITKAT
我们无法阻止在kitkat设备中以全屏模式显示状态,因此制作了一个仍然符合要求的黑客攻击,即阻止状态栏扩展。
为此,该应用程序未全屏显示。我们在状态栏上放置了一个叠加层并消耗了所有输入事件。它阻止了地位的扩大。
对于kitkat及以上,see this answer