안드로이드(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;
} |
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) sdcard 에 파일이 안들어 갈 때 (0) | 2013.09.16 |
---|---|
안드로이드(Android) Android Studio 새로운 버전으로 업데이트 하고자 할 때 (0) | 2013.09.14 |
안드로이드(android) SQLite 데이타 베이스 다루기 (11) | 2013.02.19 |
안드로이드(android) 내장, 외장 메모리 사용가능여부와 크기 알아오기 (1) | 2012.12.20 |
안드로이드(Android) 에서 TextView 와 WebView 를 이용해 Html 표현하기 (1) | 2012.12.14 |
안드로이드(Android) 전화기 알림 진동 모션 구현하기 (0) | 2012.09.12 |
안드로이드 SDK 에러 났을 때 (2) | 2012.08.27 |
안드로이드 마켓에 어플 유료 등록 절차 (0) | 2011.05.23 |