2012-07-04 3 views
1

그래서 이전에 서비스에서 터치 이벤트를 수신하는 것에 대한 질문을 게시했습니다 (아무도 그 대답을 알 수 없음).서비스에서 터치 이벤트 받기 (솔루션?)

나 자신을 몇 시간 동안 알아 내려고 시도한 후, 나는 포기하고 RubberBigPepper라는 개발자에게 이메일을 보내기로 결정했다. 나는 그에게 그의 애플 리케이션 볼륨 컨트롤에서 어떻게했는지 물었고 그는 즉시 "TYPE_SYSTEM_ALERT window"라고 대답했다.

이것은 무엇을 의미하며 코드로 어떻게 구현 될 수 있습니까?

는 편집 :

나는 다음과 같은 방법을 사용 :

getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 

을하고 창은 터치 이벤트를 수신하지 못했습니다.

은 나뿐만 아니라 이것에 대해 그를 이메일로 전송하고 그는 말한다 :

답변

1

나는 다음과 같은 코드를 사용하여 "당신의 창을 추가 할 WindowService 사용"을 참조하십시오.

int nFlags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;  
      m_cWM=(WindowManager)getSystemService(Context.WINDOW_SERVICE); 
      WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
       WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, 
       nFlags, 
       PixelFormat.TRANSLUCENT); 
m_cWM.addView(YourViewClass, lp); 

그리고 사용-권한에 대해 잊지 마세요는

여기
+0

내가 무엇을 가지고 : 텍스트 뷰의 TV = 새로운 텍스트 뷰 (이); tv.setText ("Hello"); \t \t \t int nFlags = 창 관리자. 레이아웃 예외. m_cWM = (WindowManager) getSystemService (Context.WINDOW_SERVICE); WindowManager.LayoutParams lp = 새 WindowManager.LayoutParams (...) m_cWM.addView (tv, lp); - 텍스트 뷰는 활동 내에서만 나타납니다. 내 집을 탐색하면 화면이 사라지고 장치가 터치 등록을 중지합니다. – Denizen

+2

이 코드를 – RubberBigPepper

+1

(으)로 이동해야합니다. 다행히도 더 이상 최신 Android 버전에서 작동하지 않습니다. 터치 이벤트를받을 수는 있지만 터치 이벤트를 사용하면 기본 이벤트는 이벤트를 수신하지 않습니다. – CommonsWare