1. 程式人生 > >去除android應用全屏時螢幕上方顯示的“Swipe down from the top to exit full screen”提示

去除android應用全屏時螢幕上方顯示的“Swipe down from the top to exit full screen”提示

最近開發的時候發現了一個問題,有些應用在開啟後(通常是第一次),螢幕上方會出現一個“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()即可