2013-12-16 163 views
0

我的android應用程序應該在大量的EMI環境中工作。不幸的是,EMI有時會觸發觸摸屏事件。這些觸發器似乎是隨機的,所以可以將它們濾除。過濾器觸摸事件

我想創建覆蓋窗口,接收所有觸摸屏事件,過濾它們並傳遞到我的活動的控件或系統的狀態欄。

我創建透明疊加窗口有東西入手:

WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN,     
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,    
      WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, 
      PixelFormat.TRANSLUCENT);   


    WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE); 
    LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    ViewGroup mTopView = (ViewGroup) inflater.inflate(R.layout.touch_filter_overlay, null); 
    wm.addView(mTopView, wmParams); 

我想我可以繼承的ViewGroup接收消息,但我怎麼可以發送處理的消息到後臺控制?

也許我的問題有另一種解決方案?

謝謝!

回答

0

錯誤的屏幕檢測和過濾也是觸摸屏傳感器在電子組件上的責任。某些觸摸屏傳感器使用專用電子濾波器,加上高端濾波算法來抑制虛假觸摸。 這就是爲什麼我建議你改變你的智能手機,並找到一個是防電磁干擾的。