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

在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处的代码请完整添加,否则有可能引起未知错误!

时间: 2024-12-14 14:42:16

android6.0中全屏处理(禁止通知栏下滑)的相关文章

Android中全屏 及 去掉标题栏

Android中全屏 及 去掉标题栏 <去掉标题栏的方法> 第一种:入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 <application android:icon="@drawable/icon" android:label="@s

Android中全屏或者取消标题栏

先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 <application android:icon="@drawable/icon" android:label="@string/app_name"

android6.0中的闪光灯

在android6.0中,加入了Camera相关新特性,在做开发过程中,遇到闪光灯的操作,如下: 1.导入包: import android.hardware.camera2.CameraManager; import android.hardware.camera2.CameraAccessException; 2.在onCreate函数中初始化CameraManager: camerager = (CameraManager)getSystemService(Context.CAMERA_S

Android6.0中的权限

前言 Android6.0相比之前的Android版本有一个很大的不同点,就是动态的获取权限.之前我们需要什么权限只需要在Manifest文件中声明即可,在6.0中,又新增了运行时权限的动态检测. Android6.0分了两种权限Normal Permissions(安装时自动授权,用户也不能取消权限) and Dangerous Permissions(详情在文章最后): 使用环境 如果在 Android 6.0 以前的设备上,我们之前在清单文件中声明权限是没有问题的,但是如果是在 Andro

Android6.0 中appcompat_v7 报错

更新了AndroidSDK以后 各种错误,新建一个项目会附赠一个appcompat_v7,你只要知道这个是一个兼容包就可以了,具体的特性可以看相关介绍,其实也没啥特别的就是为了兼容低版本的呗, 但是呢,这个就导致 了 各种的错误,下面是出现的错误: 经过好几个小时的捯饬,各种文章说需要重启Eclipse ,其实根本无所谓,重要的还是配置,下面是解决办法: 第一步:选择appcompat_v7-->Properties-->Android-->选择最高的API版本,并且确定Library

javascript中全屏滑动效果实现

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; } ul, ol { list-style: none; } html, body, ul, ul li { width: 100%; height: 100

unity中全屏背景图缩放

1 using UnityEngine; 2 using System.Collections; 3 4 public class BgPicScript : MonoBehaviour { 5 6 // Use this for initialization 7 public UITexture bg; 8 void Start () { 9 10 Debug.Log("device宽高: " + Screen.width + "_" + Screen.heigh

android4.4上全屏界面实现禁止状态栏下拉

附上我改动的方法:PhoneWindowManager.java里面的改动 --- a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -2863,7 +2863,9 @@ public cla

KK上全屏界面如何实现禁止状态栏下拉?

[SOLUTION] Google从KK开始增加了状态栏透明以及全屏 界面有通知可以下拉状态栏的设计,而这个设计出现的隐患是设置了FULL_SCREEN的界面是无法禁止状态栏下拉的,这样对一些工程测试app可能会造 成一定的影响,但是以google默认的设计,应用端无法修改此设计来满足自己的需求. MTK 内部已经开发提供新的接口来实现全屏界面禁止下拉状态栏,如果贵司的代码还没有这部分逻辑,请参考如下: 1. frameworks\base\core\java\android\view\View