기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

s3c6410을 갖고있는 ARM11-6410SYS에 안드로이드 1.6을 포팅해 봤습니다.

구현해보고 싶은 부분이 있는데, 지식이 부족해서 물어보게 되었습니다.


제가 해보고싶은 것이, 환경설정 부분에 물리버튼(Power, Back, Menu, Volume Up, Volume Down 등)에 대한 제어를 사용자가 설정할 수 있도록 하는 것이거든요.


예를들어 

Volum Up+Volum Down = Capture

Power + Back = Music Player Start

등을 해보고 싶습니다.


그러기 위해서는 환경설정 App을 좀 수정해야할 것 같고

버튼 제어하는 디바이스드라이버단도 수정해야할 것 같은데,

그 소스코드들의 위치와 약간의 방법을 알고싶은데,


혹시 알고계신 분이나 경험이 있으신분 있으시면

조금의 힌트라도 부탁드립니다.

감사합니다.


파일럿

2010.11.29 19:39:30
*.136.60.126

말씀하신것 처럼 키를 조합하여 특정 기능 구현하는 것은 키 드라이버 자체를 수정할 필요는 없고,

(물론 드라이버에서 특정 키 조합이 되었을때 특정 이벤트를 안드로이드로 던져서 처리할수는 있습니다)

 

phonewindowmanager.java 등을 참조하셔서 해당 기능을 구현하면 될것으로 보이네요.

pinebud

2010.11.29 20:08:53
*.110.176.149

언뜻 생각나는 것은 schedule_delayed_work류의 함수를 이용해서 workqueue에서 키보드 이벤트를 발생시키는 것이네요. 꼭 디바이스 드라이버에서 Capture event를 발생하고 싶으시다면요.. 보통 동시에 버튼을 누른다고 해도 드라이버단에서는 시간 차이가 있으니 적절하게 delay를 줘서 동시에 버튼이 눌린 것인지 싱글 버튼 이벤트인지 판단을 해야할 것 같습니다. 문제는 싱글버튼 이벤트를 판단하는데 딜레이가 들어가는 것이겠죠.. framework의 키이벤트 처리 부분을 수정할 수도 있겠지만 디바이스에 한정된 부분은 디바이스 드라이버에서 처리하는 것이 이후 유지에 편할 것 같습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
» "디바이스 드라이버"단에서 버튼 제어에 대한 부분을 구현하고 싶습니... [2] noeek 2010-11-29 873

사용자 로그인