우선 탐색 바 및 상태 표시 줄은 응용 프로그램 창의 일부가 아닙니다 ... OS가 소유하고 완전히 별도의 프로세스로 실행되는 시스템 창입니다. 타사 응용 프로그램이 다른 응용 프로그램에 전달 된 터치 이벤트를 가로 챌 수 있으므로 OS에서 명시 적으로 허가하지 않고 다른 창에있는 View
에 터치 리스너를 부착 할 방법이 없습니다. 이것은 가능하다면 분명히 주요 보안 취약점이 될 것입니다.
Android 팀이 탐색/상태 표시 줄에서 터치 이벤트를 수신하는 기능을 공개하지 않은 이유 중 하나가 효율입니다. 앞서 말했듯이, 네비게이션/상태 표시 줄은 별도의 프로세스에있는 창이므로 응용 프로그램에 대한 일종의 터치 이벤트 수신기를 만드는 데 좋은 이유가 있다고하더라도 터치 이벤트 좌표를 응용 프로그램에 전달하는 데는 많은 프로세스가 필요합니다 통신. 따라서 이러한 기능을 구현하려면 Google에서 중요한 디자인 결정을해야 할 것입니다.
물론, 특정 이벤트를 수신하는 데 사용할 수있는 콜백이 있습니다. 예를 들어, onBackPressed()
또는 onKeyUp()
/KEYCODE_HOME
을 다시 지정하여 뒤로/집 버튼 클릭을 각각 청취 할 수 있습니다. 그것 이외에, 안드로이드 프레임 워크가 당신이 찾고있는 것을 성취 할 수있게 해주는 API 메소드를 드러내지 않는 한, 당신은별로 행운이 없을 것입니다.
Google은 사용자가 액세스 권한이 필요하지 않기 때문에 – tyczj
전혀 이유가 없습니다. –
탐색 및 상태 표시 줄은 응용 프로그램의 UI 일부가 아니기 때문에. 그것들은 시스템 UI의 일부입니다. 시스템은 터치 이벤트에 응답 할 수 있습니다. 따라서 ROM 모드는 당신이 추구하는 것을 제공 할 수 있습니다. – CommonsWare