2013-05-27 6 views
0

나는 백그라운드에서 지속적으로 투명한 오버레이 작업을 만들기 위해 거의 모든 것을 시도했습니다. 그것이해야 할 일은 단지 거기에있을 뿐이며 어떤 클릭 이벤트도 포착해서는 안되며 모든 언더 레이 활동을 통해 전달해야합니다. 많은 게시물에 해결책이있는 것으로 보입니다. 그러나 나를 위해, 그들 중 누구도 지금까지 일한 적이 없다.투명한 배경 화면이 끊임없이 계속됩니다.

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); 
getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 
getWindow().addFlags(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY); 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);  
getWindow().addFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);  

여전히 화면은 터치 이벤트를 통해 수 있도록 나타납니다 활동 필자의에서 onCreate에서 (참조 How to create an overlay canvas with propagation of touch events to the home screen?

Popup over incoming-call screen )

는 그것이 작동되도록하려면 다음의 각 조합을 시도 클릭 이벤트는 발생하지 않습니다. 예를 들어, 기본 홈 화면에서 Im을 실행하고 내 앱을 실행하면 어떤 앱도 열 수 없지만 앱을 드래그하여 이상하게 선택할 수 있습니다.

도와주세요. 지금까지 해결책을 찾지 못했습니다.

답변

1

사용자가 응용 프로그램과 직접 상호 작용하지 않는 경우 서비스가 아닌 활동을 사용하는 이유가 있습니까?

+0

나는 이것을하는 Super Dimmer의 창시자입니다. 사용자의 화면에 그늘을 오버레이하기 위해 서비스를 사용하고 있습니다. 사용자가 화면과 상호 작용할 필요가없는 대신 모든 계산 등이 사용자에게 투명하게 수행되면 대신 서비스를 사용하십시오. – dberm22

+0

음, 전화가 왔을 때 이미지를 사용자에게 보여주고 싶습니다.하지만 사용자가 수신 또는 발신 전화 대화 상자와 상호 작용할 수 있어야하기 때문에이 이미지는 클릭 이벤트를 차단해서는 안됩니다. – user2424833