热门IT资讯网

android6.0中全屏处理(禁止通知栏下滑)

发表于:2024-11-29 作者:热门IT资讯网编辑
编辑最后更新 2024年11月29日,在android6.0项目中,因需要做全屏处理,故在此整理出全屏时禁止通知栏下滑的代码,希望可以帮助到也有如此困惑的人。1.在onCreate中添加://设置全屏requestWindowFeatur

在android6.0项目中,因需要做全屏处理,故在此整理出全屏时禁止通知栏下滑的代码,希望可以帮助到也有如此困惑的人。

1.在onCreate中添加://设置全屏

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

2.在onResume()函数中添加://进入activity时,设置禁止通知栏不滑

Settings.System.putInt(this.getContentResolver(),

Settings.System.FULL_SCREEN_EXPAND_STATUSBAR, 0);

3.在onPause()函数中添加://离开activity时,恢复通知栏下滑

Settings.System.putInt(this.getContentResolver(),

Settings.System.FULL_SCREEN_EXPAND_STATUSBAR, 1);

4.在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.javar的updateSystemUiViSiBilityLw()函数中添加://此代码我添加在tmpVisibility = updateLightStatusBarLw(tmpVisibility);后,有可能其它人的项目代码有改动,在需要此代码的请酌情添加至合适位置。

final int visibility;

if(Settings.System.getInt(mContext.getContentResolver(),

Settings.System.FULL_SCREEN_EXPAND_STATUSBAR, 1) == 0) {

visibility = tmpVisibility;

}else{

visibility = updateSystemBarsLw(win, mLastSystemUiFlags,tmpVisibility);

}

5.在frameworks/base/core/java/android/provider/Settings.java中添加://定义FULL_SCREEN_EXPAND_STATUSBAR

public static final String FULL_SCREEN_EXPAND_STATUSBAR = "full_screen_expand_statusbar";

6.在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java中添加://与上方onPause()中意义基本相同,未深究

systemSettings.insertSettingLocked(Settings.System.FULL_SCREEN_EXPAND_STATUSBAR, "1",SettingsState.SYSTEM_PACKAGE_NAME);

说明:为保证添加了FULL_SCREEN_EXPAND_STATUSBAR不会给系统其它地方造成影响,上述6处的代码请完整添加,否则有可能引起未知错误!

0