Translate

2013년 12월 16일 월요일

[Android] Honeycomb(허니콤) 에서 Touch Event 가 동작하지 않는경우..




문제:
Android 3.0 (Honeycomb) 에서 Touch Event 가 작동하지 않는경우
(3.1, 3.2 버전에서는 동작한다.)





원인:
- OEM browser 버그로 추정.





정확한 증상:
PS. Android 3.0 의 OEM browser 에서 재현이 가능함. (Emulator 재현 가능)

- Touch Event 를 적용한 Element 가 화면에 보이지 않는경우 Event 실행이 되지 않음.
  (스크롤을 내려서 하단에 숨어있던 Element 를 위로 올리는경우)


만일 다음과 같이 Div Element 가 하단에 일부가 노출이 된다고 한다면




스크롤을 내려서 아래의 Element 가 다 보이게 화면을 구성해도
실제 Touch Event 가 발생하는 곳은 처음 보였던 부분밖에 Touch 가 되지 않는다.







해결방법:
- 별다른 해결방법이 없어서 click Event 로 처리함

PS. 단점
Emulator 에서 mouseover Event 가 실행되는 시점이 손가락으로 눌렀을 때 바로 반응을 해야 하는데 Android 3.0 에서는 손가락을 떼었을때 (click 시점)에 이벤트가 발생이 된다...ㅠㅠ





Touch Event 관련하여 다음과 같은 이슈도 있었다.
[Android Browser] 손가락으로 이동 후 떼었을 때 touchend event가 실행되지 않는경우
[Mobile][Javascript] touch Event(touchstart, touchmove, touchend) 가 작동하지 않는경우




2013년 12월 10일 화요일

[Android][Ubuntu] 우분투에서 안드로이드 ADB 접속 가능하게 설정 (no permissions usb:2-1 문제)




집에있는 Ubuntu 13 으로 Android 개발을 하려고 USB 케이블을 연결 후 실행하니
ADB로 디바이스에 정상적으로 접속을 할 수 없었다.



다음과 같은 화면이..   (no permissions usb:2-1)




구글신께 물어보니 다음 페이지를 참고하라고 하신다.
http://developer.android.com/tools/device.html




하지만 영어로 되어있기도 하고 직관적으로 어떻게 해야 하는지 나와있지도 않아서
해봤는데도 잘 되지 않고..

구글신께 좀더 물어보니 다음과 같은 방법이 있었다.





이렇게 파일을 추가하는것은 나와있어서 하긴 했는데..
(파일명 앞부분의 숫자는 관계 없는거 같기도..)

ATTR에 대한 설명만 있지 MODE 설명을 찾지 못했었다.
(GROUP에 대한 설정은 /etc/group 에 내가 속한 그룹명..)







"lsusb" 라는 명령어를 입력 하면 USB 관련 정보들이 나오는데
내가 연결한 디바이스의 정보를 볼 수 있다.
1004:631f   부분이 내 디바이스 연결된 정보인데 여기서

ATTR: 1004
MODE: 631f

이렇게 나뉘어 진다.






USB 케이블에서 디바이스를 분리했다가 다시 연결하면 정상적으로 인식이 된 것을 확인할 수 있다.




참고 사이트
http://hijacker.egloos.com/2726990


2013년 12월 2일 월요일

[IntelliJ13] Android SQLite Database 연결이 안되는 경우




아직 베타 버전이긴 하지만 IntelliJ13 에서는
Android의 DB에 바로 접속하는 기능이 추가되었다.  -> 링크


블로그에 나와있는대로 작업을 했는데 난 왜 볼 수 없는가..;;
"Synchronize" 버튼을 클릭 하라고 되어있는데 disable 되어 있어서 클릭이 되지 않는다.

꽤 시간을 들였는데 알고보니 sqlite 드라이버가 없어서 접속을 할 수 없는 문제..ㅠ





설정한 Data source 의 오른쪽 버튼을 누른 후 "Edit Driver Settings"를 선택하면
실제로는 "SQLite > Xerial" 의 드라이버를 사용하는 것을 알 수 있다.

드라이버가 없으니 안되는 것은 당연..;;





"download" 링크를 눌러서 드라이버를 다운로드 받는다.






다음과 같이 "Synchronize" 버튼이 활성화 되어있는것을 볼 수 있다.







성공!!





PS.
드라이버가 다운로드 되지 않을 시 ==> 링크


[IntelliJ] Driver, Program을 자동으로 다운로드 받으려 할 시 다운로드 실패가 나오는 경우 해결방법




IntelliJ를 사용해 보면서 DB연결 드라이버나 Tomcat 과 같은 연동 프로그램을 자동으로
다운로드 받을 수 있는 기능이 있어서 좋다고 생각했는데..

아무리 "Try again" 을 눌러봐도 다운로드가 되지 않았다.

귀찮아서 내가 가지고 있는 톰캣으로 연동을 해버리고 넘어갔는데..
오늘도 sqlite Driver를 다운로드 받으려니 안되서 찾아보니

Proxy 셋팅을 해주면 되는 간단한 방법이 있었다..ㅠ







"Set up HTTP proxy settings" 클릭








1. "Auto-detect proxy settings" 체크
2. "Check connection" 클릭
3. 앞에 나왔던 URL에서 앞부분의 서버주소만 다음과 같이 변경해 준다.
http://download-eu.jetbrains.com/

출처: 링크







그 후 OK를 누른 후 다시 "Try again" 을 누르면 아래와 같이 정상적으로 다운로드가 된다.