2017-02-28 74 views
2

我有一個需求,當我的應用程序沒有在前臺運行時,需要顯示一些圖標。爲此,我需要將視圖添加到窗口管理器。是否有可能添加視圖到Android電視窗口管理器。是否有可能在Android TV中添加一個視圖到WindowManager

這是我試圖

LayoutInflater inflater = LayoutInflater.from(getActivity()); 
     final View layout = inflater.inflate(R.layout.layout_show_on_top_of_view, null); 

     WindowManager.LayoutParams params = new WindowManager.LayoutParams(); 
     params.gravity = Gravity.TOP | Gravity.LEFT; 
     params.height = WindowManager.LayoutParams.WRAP_CONTENT; 
     params.width = WindowManager.LayoutParams.WRAP_CONTENT; 
     params.type = WindowManager.LayoutParams.TYPE_TOAST; 
     params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE 
       | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE 
       | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 
       | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; 
     params.format = PixelFormat.TRANSLUCENT; 
     params.windowAnimations = 0; 
     final WindowManager mWindowManager = (WindowManager) 
       getActivity().getSystemService(Context.WINDOW_SERVICE); 
     mWindowManager.addView(layout, params); 
     layout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       mWindowManager.removeView(layout); 
      } 
     }); 

我嘗試不同類型的太代碼,但它不工作。

+0

你找到解決方案? – NehaK

+0

@NehaK我已經嘗試了很多,但我還沒有找到任何解決方案。 –

回答

1

我想你想達到可以用透明的活動來完成,看看這個其他問題/回答:Is it possible to draw overlay over any screen using 3rd party app in android TV?

+0

但通過這種透明的活動後退活動將進入後臺狀態,而不是按預期工作。這是不是可以通過服務? – NehaK

+0

您可以收到關於服務的通知,然後開始一個活動,這將起作用。另外,我認爲在後臺啓動一個應用程序的新活動會使其處於前臺。 – shalafi

相關問題