您的位置:首页 > 其它

怎样禁止下拉通知栏

2014-06-12 10:34 232 查看
     Android系统有下拉通知栏(如下图),但是有的项目需要禁止通知栏的下拉。今天找到一个方法,但是该方法在windows下的Eclipse编不过,在Linux服务器里编却能顺利通过。暂时没搞懂什么原因。【补充:源码环境下能编过】



[align=left] [/align]

      首先要在项目的AndroidManifest.xml里面要声明权限:
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
<uses-permission android:name="android.permission.STATUS_BAR"/>
 

首先要导入StatusBarManager包,并声明一个对象:
import android.app.StatusBarManager;
private StatusBarManager mStatusBarManager;
    然后是初始化:mStatusBarManager = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE);
    下面的函数是禁止下拉通知栏:
public void ProhibitNotificationBar() {
mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
}

      因为这种禁止的下拉是系统级别的,所以当我们退出时要及时的将其打开,否则所有的应用将无法使用下拉通知栏。打开下拉通知栏代码如下:
public void OpenNotificationBar() {
mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
}

      补充:该种方法在windows的Eclipse里编不过,但是在Linux的服务器里能编过,不知道是什么原因.....
 
       今天又发现可有模仿视频播放器里,当播放视频的时候自动全屏,当视频结束活着点击屏幕时退出全屏的方法,关键代码如下:
//显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
//隐藏状态栏,同时Activity会伸展全屏显示
mRLayout.setSystemUiVisibility(View.INVISIBLE);
//Activity全屏显示,且状态栏被隐藏覆盖掉。
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
//Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
//同mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
//同mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_LAYOUT_FLAGS);
//隐藏虚拟按键(导航栏)
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
//状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。
mRLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: