在app设置为全屏状态时,第一次进入app时会有个 目前处于全屏的 对话框提醒用户现在处于全屏状态
但是客户不一定会喜欢这个提示框,所以考虑掉要把这个提示框给去掉
所以根据提示语开始在framework/base下搜索“目前处于全屏模式”
接着继续搜索immersive_cling_title 发现在 R.layout.immersive_mode_cling 中引用了这个资源 接下来就来查找这个是哪里用到了,结果在ImmersiveModeConfirmation.java中找到了应用的地方:frameworks\base\services\core\java\com\android\server\wm\ImmersiveModeConfirmation.java
而 handleShow() 负责启动这个窗口
private void handleShow() {
if (DEBUG) Slog.d(TAG, "Showing immersive mode confirmation");
mClingWindow = new ClingWindowView(mContext, mConfirm);
// we will be hiding the nav bar, so layout as if it's already hidden
mClingWindow.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
// show the confirmation
WindowManager.LayoutParams lp = getClingWindowLayoutParams();
getWindowManager().addView(mClingWindow, lp);
}
private final class H extends Handler {
private static final int SHOW = 1;
private static final int HIDE = 2;
H(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW:
//注释掉这里就可以屏蔽弹框
//handleShow();
break;
case HIDE:
handleHide();
break;
}
}
}