|
오늘은 SD Card ( External Storage ) 를 사용하는, 혹은 접근하는 방법에 대해서 함께 알아보겠습니다.
Permission.
APIs
<example>
[에뮬레이터에서 SD Card 만드는 방법]
접기
> mksdcard [-l 레이블] 용량 파일명
-> 용량은 8M 이상
-> 파일명은 ISO 파일과 비슷하다고 생각하면 된다.
접기
-----------------------------------------------------------------------------
http://tjandroid.blogspot.kr/2010/12/sdcard.html
sdcard 파일 입출력
sdcard 파일 입출력
참조(공식 안드로이드 개발 사이트): http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
1. sdcard 에 접근하기 위해 manifest 파일에 permission 을 추가해 준다.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2. sdcard 가 마운트 되었는지 또는 쓰기 가능한지 등의 상태를 확인한다.
String state =
Environment.getExternalStorageState()
- state 가 Environment.MEDIA_MOUNTED 이면
마운트되어 있고 쓰기 가능하다.
- state 가 MEDIA_MOUNTED_READ_ONLY 이면 마운트되어 있고 읽기만
가능하다.
- 그외 는 sdcard 에 접근 할 수 없는 경우다.
3. sdcard 의 File 객체를 받는다.
API level 7 까지는
Environment.getExternalStorageDirectory() 를 사용한다.
API level 8 부터는
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 를
사용할 수 있다.
예) File path = Environment.getExternalStorageDirectory();
4. File 객체를 만든다.
위에서 받은 File 객체를 path 로 넣어준다.
예) File file = new
File(path, "filename");
5. 파일을 조작한다.
- 바이너리 파일 입출력은 FileInputStream/FileOutputStream 클래스를
이용한다.
- 텍스트 파일 입출력은 BufferedReader/BufferedWriter 클래스를 이용한다.
#) getExternalStorageDirectory 함수를 사용하지 않고 "/sdcard/filename" 등의 경로를 File 생성자에 직접 넣어주면 IllegalArgumentException (예 'File /sdcard/filename contains a path separator') 이 발생한다.
'차근차근 > Android' 카테고리의 다른 글
안드로이드 어플리케이션 기초1 - 어플리케이션 컴포넌트 (0) | 2014.07.29 |
---|---|
안드로이드 어플리케이션 기초3 - 액티비티와 태스크 (0) | 2014.07.29 |
안드로이드 어플리케이션 기초4 - 프로세스와 쓰레드 (0) | 2014.07.29 |
MediaScanner 을 APP에서 실행시키기 (0) | 2014.07.29 |
안드로이드 에뮬레이터에서 로컬 PC 서버에 접근시 (0) | 2014.07.29 |