마무리 작업을 하고 있다.
타겟에 올려보니 실제와 다른 부분이 몇가지 있다.

특히 SDCARD부분이 다소 달랐다.
만약, SDCARD가 컴퓨터에 연결이 되어 있다면 디바이스에 인스톨된 어플리케이션은 SDCARD에 접근을 하지 못하는 것 같다.

곰곰히 생각해보니, 만약 어플 사용자가 선을 연결해놓고 실행하려 하는 경우 동일한 문제가 발생할 수 있다는 생각이 들었다.

따라서 SDCARD를 사용하려면 반드시 사용하기 전에 SDCARD의 상태가 정상적인지 확인하는 것이 필요하다.

SDCARD의 상태를 확인하는 것은 getExternalStorageState() 를 사용하면 된다.
android.os.Environment.getExternalStorageState()
아래는 안드로이드 Developer 자료
Constants
String MEDIA_BAD_REMOVAL getExternalStorageState() returns MEDIA_BAD_REMOVAL if the media was removed before it was unmounted.
String MEDIA_CHECKING getExternalStorageState() returns MEDIA_CHECKING if the media is present and being disk-checked
String MEDIA_MOUNTED getExternalStorageState() returns MEDIA_MOUNTED if the media is present and mounted at its mount point with read/write access.
String MEDIA_MOUNTED_READ_ONLY getExternalStorageState() returns MEDIA_MOUNTED_READ_ONLY if the media is present and mounted at its mount point with read only access.
String MEDIA_NOFS getExternalStorageState() returns MEDIA_NOFS if the media is present but is blank or is using an unsupported filesystem
String MEDIA_REMOVED getExternalStorageState() returns MEDIA_REMOVED if the media is not present.
String MEDIA_SHARED getExternalStorageState() returns MEDIA_SHARED if the media is present not mounted, and shared via USB mass storage.
String MEDIA_UNMOUNTABLE getExternalStorageState() returns MEDIA_UNMOUNTABLE if the media is present but cannot be mounted.
String MEDIA_UNMOUNTED getExternalStorageState() returns MEDIA_UNMOUNTED if the media is present but not mounted.

최소한 MEDIA_SHARED 상태인지 확인하는 것이 필요하다고 여겨진다.

허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.
에뮬레이터를 만들 때, 혹은 추후에 가상의 SDCARD를 만들었다면 그 안에 데이터를 넣을 수 있다.

1. 먼저 에뮬레이터를 실행시킨다.
    - 안드로이드 SDK 설치하기 참조
2. DDMS를 실행한다.
    우측 상단에 DDMS를 클릭한다. 만약 DDMS가 보이지 않는다면 아래 그림과 같이 Window에 Show View > Other를 선택하고 안드로이드의 DDMS를 선택하면 우측 상단에 DDMS가 나타난다.

3. sdcard를 선택하고 파일을 업로드한다.
   
DDMS를 선택하면 위와 같은 화면이 뜬다. File Explore에서 sdcard를 선택하고 우측 상단의 두 아이콘중 휴대폰 모양의 아이콘을 클릭한다.

반대로 sdcard의 파일을 꺼내려고 하면 디스켓 모양을 클릭하면 된다.

그러나 이방법을 사용하면 큰 파일을 올리기에 부적합하다. 올라가는 중간에 잘 끊어진다.
따라서, 어쩔수 없이 콘솔을 통해 업로드하는 방법을 썼다.

1. 먼저 [Window의 경우] 시작의 실행을 선택하고 cmd를 입력한다.
2. 안드로이드 sdk를 설치한 폴더로 이동한다. 정확히는 tools라는 폴더를 찾아야 한다.
3. 아래 명령을 실행한다.
    adb push [로컬파일 위치] /sdcard/[적절한 폴더 및 파일 명]

100메가 정도 업로드하는데 몇분 걸리는 것 같다.
경로는 /sdcard가 아니라 /mnt/sdcard 일 수도 있다. 정확한 경로는 DDMS의 File Explore가 보여주는 위치를 사용하도록 한다.
허접한 글이지만, 도움이 되신다면 아래 손가락 꾹 눌러주세요.
  1. Eunah 2010.11.05 03:30 신고

    아 했다.. ㅠㅠ 힘들다 힘들어
    사진찍었던 GPS정보 위도 경도얻어오는거ㅋㅋㅋ
    내일 구글맵에 띠우는거 해야지
    아 뿌듯함 ㅋㅋㅋ 내일 보여줄게 !!
    안녕 잘자 ~~~~~~~~~~~~~~~~~~~~~~~

    • 소혼 2010.11.05 08:10 신고

      고생하누만. 새벽 3시까지 ㅋㅋ

      열심히 하고 글 정리해서 오빠한테 기고혀~
      블로그에 글 적을 시간도 요새 없어 ㅠ_ㅠㅠ

  2. Eunah 2010.11.05 03:33 신고

    오빠야ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

    가상 SDcard 추가해서 데이터 넣는거
    블로그 돌아다니면서 찾다가 우연히 들어왔는데...

    메인사진에 왠 낯선분이 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
    오빠 블로그네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

    cmd 창에서 하는 것만 보다가 이거보니까 반갑네 ㅠㅠ

    • 소혼 2010.11.05 08:09 신고

      낯선 아니죠. 낯익은 맞습니다.
      프로그래밍 언어만 공부하지 말고 언어도 공부해!

      프로그래머도 화술에 능해야 면접에 안미끄러진다.

+ Recent posts