2017-05-06 17 views
0

HTC Desire 510, Android 4.4.2 KitKat Xased Framework가있는 SuperSU에서 루팅 됨.유령/팬텀 터치를 차단하기 위해 화면의 일부를 그리는 앱을 개발할 수있는 방법이 있습니까?

다른 앱을 사용하는 앱을 만드는 방법이 있지만 화면의 일부만 그리는 앱을 보지 못했다는 것을 알고 있습니다.

다음은 내 문제에 대한 배경입니다.

  1. 어느 날, 내 전화는
  2. 내가 개발자 옵션에서 "연락처보기 터치"를 활성화 유령 터치 문제가하기로 결정하고 난 터치의 모든 화면의 오른쪽 상단에서 오는 더라 .
  3. 그런 다음 "show pointer location"또는 이와 비슷한 것을 활성화하면 은 X : 370-380에서 모든 터치가 발생했음을 확인했습니다.

내가 사용했던 일부 응용 프로그램을 보았습니다. 현재 열려있는 응용 프로그램에 대한 접근을 차단합니다. 그래서 응용 프로그램 블록을 1/3 정도 차단할 수 있는지 궁금합니다. 화면. 전화를 그냥 보내야한다면, 그럴 것입니다. 나는 그것을 풀 수 있지만 다른 스레드에 대한 것 같아요. 나는 혼자서 전화를 열려고 노력할 것이다. 그러나 나는 아마 그것을 깰 것이다. 그래서 나는 그것과 함께 살고 그것을 해결하려고 노력하고있다. 더 많은 정보가 필요하면 아래에 질문하십시오.

답변

0

게임의 경우 일반적인 방법이 확실하지 않지만 이론적으로 이론적으로 주어진 활동에 대한 모든 터치 이벤트를 가로 채고 지정된 좌표 내에서 발생하는 터치 이벤트를 취소 할 수 있습니다.

dispatchTouchEvent 활동 방식을 가로 채려고하십시오. 터치 좌표가 포함 된 MotionEvent을받습니다. 이 좌표를 범위와 일치시키고 무시해야한다면 dispatchTouchEvent 메소드 return을 true (이벤트 소비)로 변경하십시오.

dispatchTouchEvent 메서드를 재정의 할 수 있으므로이 메서드가 지정된 Activity에 선언되어 있는지 확인해야 할 수 있습니다. 그렇지 않으면 훅이 작동하지 않을 수 있습니다. 새로운 활동을 차단하려면 this stackOverflow answer을 확인하십시오. 해당 afterHookedMethod 메서드에서 param.this.getClass().getDeclaredMethods을 통해 메서드가 선언되었는지 확인하거나 getDeclaredMethod을 사용하여 메서드를보다 구체적으로 지정하십시오. 정의 된 경우 Activity 클래스에 dispatchTouchEvent을 연결 한 것과 같은 방식으로 연결하십시오.

N.B : 같은 방법을 여러 번 연결하지 마십시오.