去除android應用全屏時螢幕上方顯示的“Swipe down from the top to exit full screen”提示
阿新 • • 發佈:2019-02-02
最近開發的時候發現了一個問題,有些應用在開啟後(通常是第一次),螢幕上方會出現一個“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()即可