Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(android) 에서 sdcard 사용여부 판단하기

안드로이드 개발
반응형

안드로이드(android) 에서 sdcard 사용여부 판단하기

 

개발환경 : window7 32bit, eclipse indigo, android API 1.7, platform 4.2

 

 

sdcard 가 정상적으로 작동하는지 여부에 알아보기 위해서는

android.os.Environment.getExternalStorageState() 를 사용한다.

String 으로 리턴하며 다양하게 존재하는데 아래는 리턴값에 따라 어떤

상태 들이 존재하는 알아본다.

 

public static final String MEDIA_BAD_REMOVAL

장치해제 전에 SD카드를 제거한 상태

 

public static final String MEDIA_CHECKING

SD카드 존재하며 디스크를 체크하는중

 

public static final String MEDIA_MOUNTED

SD카드가 존재하고 연결이 되었으며 읽고 쓰기가 가능한 상태

 

public static final String MEDIA_MOUNTED_READ_ONLY

SD카드가 존재하고 연결이 되었지만 읽기만 가능한 상태

 

public static final String MEDIA_NOFS

SD카드가 존재하지만 비어있거나 파일시스템이 적용되지 않는 상태

 

public static final String MEDIA_REMOVED

SD카드가 존재하지 않는 상태

 

public static final String MEDIA_SHARED

SD카드가 연결되지 않은 상태에서 USB 저장소를 사용할수 있는 상태

 

위 상태 중에서 SD 카드가 사용가능한 값이라고 판단되는 것은

MEDIA_MOUNTED MEDIA_MOUNTED_READ_ONLY 가두가지가 있다.

첫번째는 read/write 가 가능한 상태이며 두번째는 읽기만 가능하다.

그러니까 현재 어떤 기능을 수행할지 여부에 따라 두 값을 가지고 결정 하면

될것 같다.

아래는 간단하게 함수를 만들었다. 파라미터로 읽기가 가능한지 여부를 넘겨서

SD 카드 사용유무를 판단하는 것이다.

 

/** 외장메모리 sdcard 사용가능한지에 대한 여부 판단 */

public static boolean isStorage(boolean requireWriteAccess) {

   String state = Environment.getExternalStorageState();

   if (Environment.MEDIA_MOUNTED.equals(state)) {

          return true;

   } else if (!requireWriteAccess &&

             Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {

           return true;

   }

   return false;

 

}

반응형
Posted by 녹두장군1
,