2011-12-20 6 views
0

보안 응용 프로그램을 개발 중입니다. 사용자가 특정 시간 동안 하드웨어 버튼을 누르면 조치가 발생합니다.장치가 잠든 동안 하드웨어 버튼 누름 이벤트

전원 또는 볼륨과 같은 하드웨어 버튼을 눌러야합니다. 내 응용 프로그램은 사용자가 화면 잠금을 해제 할 필요없이 백그라운드에서 작동해야합니다. 문제는 기기가 '잠 들어있는 동안 버튼을 눌렀을 때 이벤트를 수신 할 수 없다는 것입니다.

사용자가 전원 버튼을 3 초 동안 누르면 이메일이 전송 될 수 있습니다.

KeyEvent.KEYCODE_POWER은 서비스에서 작동하지 않으며 활동이 일시 중지되었거나 소멸되었습니다.

모든 아이디어 내 문제를 해결하는 방법은 무엇입니까?

실현하려면 BrodcastReceiver이 있습니까?

답변

-2

이 buttonId.performClick()을 사용하십시오. 그것은 다음 목적으로 사용됩니다.

버튼을 클릭하지 않고 해당 버튼의 클릭 조작을 수행 할 수 있습니다. 버튼을 클릭하지 않고 해당 버튼의 onclick 메소드를 호출 할 수 있습니다.

+0

나는 그 질문에 대답한다고 생각하지 않는다. 필요한 것은 실제 버튼 클릭을 탐지하는 것이지 위장을 시도하는 것이 아닙니다. – barry

+0

buttonid.setOnClickListener (new .... 실행하려는 코드를 작성하십시오.); –

+0

그의 응용 프로그램이 백그라운드에서 실행 중이며 하드웨어 버튼 누르기를 감지해야하므로 여전히 유용하지 않습니다. – barry

1

나는 당신에게 가장 좋은 방법은 BroadcastReceiver를 만드는 것이라고 생각한다. 그러나 여기에 가입하는 행동의 문제가 될 것입니다. 어쩌면 당신은 당신에게 맞는 것을 찾을 수 있습니다 here. "표준 방송 조치"를 찾으십시오.

+0

링크에서 "시스템에서만 보낼 수있는 보호 된 의도입니다"라는 문자열을 검색하는 것이 좋습니다. – Jin35

관련 문제