2017-05-17 9 views
0

안녕하세요, 저는 스마트 폰에서하는 모든 터치 이벤트를 차단하고 (다른 애플리케이션을 차단하지 않는) 투명 오버레이를 만들려고합니다. 특히 스크롤 이벤트에 관심이 있습니다. 서비스 클래스의 코드입니다. :Android는 서비스 오버레이를 만들고 모든 터치 이벤트 데이터를 차단할 수 있습니까?

@Override 
public void onCreate() { 
    super.onCreate(); 
    windowManager=(WindowManager)this.getSystemService(Context.WINDOW_SERVICE); 
    view=new LinearLayoutCompat(this); 


    LayoutParams params=new LayoutParams(1, ViewGroup.LayoutParams.MATCH_PARENT); 


    view.setLayoutParams(params); 
    view.setOnTouchListener(this); 

} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 

    LayoutParams params = new LayoutParams(
      1, /* width */ 
      1, /* height */ 
      LayoutParams.TYPE_PHONE, 
      LayoutParams.FLAG_NOT_FOCUSABLE 
        | LayoutParams.FLAG_NOT_TOUCH_MODAL 
        | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, 
      PixelFormat.TRANSPARENT 
    ); 
    params.gravity = Gravity.LEFT | Gravity.TOP; 
    windowManager.addView(view, params); 
    return super.onStartCommand(intent, flags, startId); 
} 




@Override 
public boolean onTouch(View view, MotionEvent motionEvent) { 


    Log.d(TAG,motionEvent.toString()); 



    return false; 
} 

그러나이와 나는 단지 모션 이벤트의 ACTION_OUTSIDE 유형을 얻고, 내가 스크롤을 추적하는 나는 미리 감사 이벤트의 모든 배열을 필요로한다!

답변

1

내가 그 차단 투명 오버레이를 만들려고하고있다 (그리고 다른 응용 프로그램을 차단하지 않습니다)

다행히 내 스마트 폰에서 내가 할 모든 터치 이벤트를, 이것은 명백한 개인 정보 보호를 위해, 수 없습니다 Android 4.0 이상에서는 보안상의 이유로 맬웨어 작성자는 이러한 종류의 "탭 잭킹 (tapjacking)"공격을 좋아합니다. 사용자 입력을 눈에 띄지 않게 감시합니다.

+0

나는 이것이 내가 그 이유라고 상상했을 것이다. D : 감사합니다. – Matthew