最近开发的时候发现了一个问题,有些应用在开启后(通常是第一次),屏幕上方会出现一个“Swipe down from the top to exit full screen.”的提示,翻译过来就是"从顶部向下滑动即可退出全屏模式。",这是android4.4的一个特性,叫做沉浸模式(Full-screen Immersive Mode),当app启用该模式时,应用程序的界面会占据整个屏幕,屏幕上方的状态栏和下方的导航栏会被隐藏,从屏幕顶端向下滑动就可以再次呼出状态栏和导航栏,系统为了提醒用户就多加了一个提示装口。
然而这个提示对于某些特殊的情况来说造成困扰,比如说某些深度定制的android系统无法使用鼠标或者触摸屏,打开全屏应用时,一旦出现了这个提示就无法消除,非常影响用户体验。所以需要去除这个提示窗口。
此处并不是说要去除android的沉浸模式这个特性,而是仅仅去掉这个提示窗口。
相关代码位于frameworks/base/policy/src/com/android/internal/policy/impl/目录下的ImmersiveModeConfirmation.java文件里,打开这个文件,找到:
private final class H extends Handler {
private static final int SHOW = 0;
private static final int HIDE = 1;
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW:
handleShow((String)msg.obj);
break;
case HIDE:
handleHide();
break;
}
}
}
这段代码的功能就是呼出和隐藏提示窗口的,我们只需要屏蔽掉handleMessage方法中的handleShow((String)msg.obj)和handleHide()即可