4.4中的应用是无法独自禁止状态栏下拉,必需系统提供相应的接口。
首先对系统做修改
路径:frameworks/base/core/java/android/provider/Settings.java
+ public static final String STATUS_BAR_DISABLED = "status_bar_disabled";
public static final String[] SETTINGS_TO_BACKUP ={
~
+STATUS_BAR_DISABLED
}
路径:frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
public class PhoneWindowManager implements WindowManagerPolicy {
@Override
public int adjustSystemUiVisibilityLw(int visibility) {
- mStatusBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
+ if(Settings.System.getInt(mContext.getContentResolver(),Settings.System.STATUS_BAR_DISABLED,0) == 0){
+ mStatusBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
+ }
mNavigationBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
在应用中的主activity修改
+import android.view.WindowManager;
+import android.provider.Settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
+ Settings.System.putInt(getContentResolver(), "status_bar_disabled", 1);
}
别忘了给应用加上权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" />