2014-02-24 29 views
2

我已通過爲我的應用程序集成輔助功能服務來實現了一些功能。Android 4.4隱藏導航欄/狀態欄使用輔助功能服務和服務

我目前有一個'系統覆蓋'ImageView,可以檢測TouchEvent的。但是我已經看到它完成了沉浸式模式,隱藏狀態欄或導航欄可能沒有根。

我需要比布爾訪問我的觸摸檢測窗口的視圖以處理任何無障礙

我的輔助服務包含:

 ... 
     @Override 
     public void onServiceConnected() { 
      serviceInstance = this; 
     } 
    ... 

我的觸摸檢測:

... 
     WindowManager wm; 
     private MyAccessibilityService myAccessibilityService; 
     private ImageView mTouchDetector; 

     @Override 
     public void onCreate() { 

      super.onCreate(); 

      myAccessibilityService = MyAccessibilityService.getSharedInstance(); 

    WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        100, 
        100, 
        0, 0, 
        WindowManager.LayoutParams.TYPE_PHONE, 
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, debugMode()); 
      params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM; 
      wm = (WindowManager) getSystemService(WINDOW_SERVICE); 
      wm.addView(mTouchDetector, params); 
    } 
... 
+0

你能解釋一下你的意思「但是我已經看到它做到了身臨其境的模式,隱藏狀態欄或導航欄可以不根」?你想達到什麼目的? – alanv

+0

使用輔助功能服務,全局隱藏系統ui。在聯網設備上充分使用整個屏幕。我的應用程序沒有一個位於前臺的活動,它的服務具有「系統覆蓋」 – user3171088

+1

它必須是因爲Play商店中的沉浸式模式應用程序使用沒有根目錄的服務執行此操作! – user3171088

回答

2

我已經部分解決了這個問題,但是後面的按鈕有一些問題,請點擊這裏查看是否得到解決。

創建服務正常,但這些標誌添加到覆蓋:

窗口管理:

TYPE_PRIORITY_PHONE,FLAG_FULLSCREEN | FLAG_NOT_TOUCH_MODAL

給視圖:

INT uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
FloatingView.setSystemUiVisibility(uiOptions);

Android floating window with hidden statusbar Accessibility problems

+1

感謝它的工作原理,我想我應該繼續跟蹤線程以獲得最終解決方案。 – user3171088