안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 에뮬레이터에서는 GPS기능이 되지 않아서
DDMS를 이용하여 위도, 경도 정보를 줄 수 있다는 것을 공부하면서 알았습니다.
그런데 DDMS를 이용하지 않고 마우스포인터의 움직임을 위도, 경도 정보처럼
계산하여서 임의로 프로그램에 보내줄 수 있는 방법은 없을까요..
실제로 움직이면서 그 움직임을 GPS로 받아서 표현해주는 프로그램을
만들려고 했으나 에뮬레이터에서 지원되지 않기 때문에 마우스포인터로 움직이면서
그 정보를 임의로 우리프로그램에 보내주고 싶습니다.
마우스포인터가 어렵다면 GoogleEarth에서 얻어지는 위도, 경도 정보를 넘겨줄 수 있도록
구현하고 싶습니다.
LocationManager myManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
latPoint = myManager.getLastKnownLocation("gps").getLatitude();
lngPoint = myManager.getLastKnownLocation("gps").getLongitude();
와 같은 방식으로 프로그래밍한 뒤 DDMS로 정보를 보내서 출력하는 것에서부터 에러가 나기도 했습니다.
latPoint와 lngPoint는 Double인데 임의로 값을 집어넣어서 출력해보면 제대로 출력되지만
위와 같은 코드처럼 값을 직접 받아서 넣어주면 에러가 나더군요..
하루종일 공부하면서 프로그래밍 했는데 궁금한 점이 두서없이 많지만
좋은 도움 부탁드립니다 ^^
DDMS를 이용하여 위도, 경도 정보를 줄 수 있다는 것을 공부하면서 알았습니다.
그런데 DDMS를 이용하지 않고 마우스포인터의 움직임을 위도, 경도 정보처럼
계산하여서 임의로 프로그램에 보내줄 수 있는 방법은 없을까요..
실제로 움직이면서 그 움직임을 GPS로 받아서 표현해주는 프로그램을
만들려고 했으나 에뮬레이터에서 지원되지 않기 때문에 마우스포인터로 움직이면서
그 정보를 임의로 우리프로그램에 보내주고 싶습니다.
마우스포인터가 어렵다면 GoogleEarth에서 얻어지는 위도, 경도 정보를 넘겨줄 수 있도록
구현하고 싶습니다.
LocationManager myManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
latPoint = myManager.getLastKnownLocation("gps").getLatitude();
lngPoint = myManager.getLastKnownLocation("gps").getLongitude();
와 같은 방식으로 프로그래밍한 뒤 DDMS로 정보를 보내서 출력하는 것에서부터 에러가 나기도 했습니다.
latPoint와 lngPoint는 Double인데 임의로 값을 집어넣어서 출력해보면 제대로 출력되지만
위와 같은 코드처럼 값을 직접 받아서 넣어주면 에러가 나더군요..
하루종일 공부하면서 프로그래밍 했는데 궁금한 점이 두서없이 많지만
좋은 도움 부탁드립니다 ^^
1.
위치가 움직이는 것도 DDMS에서 에뮬레이션 해줍니다. GoogleEarth에서 생성되는 KML파일을 통해서도 할수 있습니다. 제가 뽑은 KML파일도 하나 첨부합니다. 복잡하지만 그 중에서 실제 DDMS에서 사용하는 부분은 아래 코드 정도이니 쉽게 수정해서 만드실 수 있을 것같습니다. 사용하시려면 DDMS에서 Location Control의 KMLTab의 Load KML부분을 이용하시면 되구요.
그런데 원하시는 것이 이것이 아니라 실제로 마우스나 노트북의 GPS에서 결과를 받아서 에뮬로 전달하시고 싶으신건가요? 그럴 경우 telnet으로 emulator에 접속하셔서 geo command를 보내서 제어할 수 있습니다. 보통 5554포트로 생성되는데 어떤 포트인지는 ddms에서 확인하실 수 있습니다.
$ geo fix [longitude] [latitude] [altitude in meter] ex) geo fix -121.45 46.51 4392
위 방식을 사용하면 실시간으로 다른 프로그램이랑 연동해서 에뮬레이터의 위치 정보를 바꿀수도 있습니다.
2.
그리고 코드에서 에러가 나는 것은 getLastKnownLocation에서 null값을 리턴해서 발생하는 문제일 가능성이 90%입니다. getLastKnowLocation은 null값을 return할 수 있으니 체크한후에 출력등의 처리를 하셔야 합니다.
도움이 되셨는지요 :)