반응형
안녕하세요 돼지왕 왕돼지입니다.
오늘은 SD-Card ( External Storage ) 의 mount, unmount, media scanner 등의 상태 변화를 감지하는 법을 알아보겠습니다.
액션 | 설명 |
ACTION_MEDIA_MOUNTED | 마운트됨. 마운트 경로는 인텐트의 mData 필드로 조사, read-only 값은 읽기 전용미디어인지 조사 |
ACTION_MEDIA_UNMOUNTED | 언마운트 |
ACTION_MEDIA_EJECT |
사용자가 외부 미디어 제거 명령
응용 프로그램은 모든 열려진 파일 닫아야 함
|
ACTION_MEDIA_REMOVED | 외부 미디어가 제거됨 |
ACTION_MEDIA_NOFS | 인식 못하는 파일 시스템이거나 빈 미디어 |
ACTION_MEDIA_SCANNER_STARTED | 미디어 스케너가 스캔 시작 |
ACTION_MEDIA_SCANNER_FINISHED | 미디어 스캔 종료 |
ACTION_MEDIA_SCANNER_SCAN_FILE | 파일 검색했으며 DB에 파일 추가 |
포인트는 dataScheme을 "file"로 설정해야만 제대로 수신된다는 것!
<Code>
public void onResume(){
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
filter.addAction(Intent.ACTION_MEDIA_REMOVED);
filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
filter.addAction(Intent.ACTION_MEDIA_EJECT);
filter.addAction(Intent.ACTION_MEDIA_NOFS);
filter.addDataScheme("file");
registerReceiver (mBRSdcard, filter);
}
public void onPause(){
super.onPause();
unregisterReceiver(mBRSdcard);
}
BroadcastReceiver mBRSdcard = new BroadcastReciever(){
int count = 0;
public void onRecieve (Context context, Intent intent){
String action = intent.getAction();
count++;
String str = "Location : " + intent.getData();
if (action.equals(Intent.ACTION_MEDIA_MOUNTED)){
boolean readonly = intent.getBooleanExtra("read-only", false);
}
...
}
}
<Manifest>
<receiver android:name=".BRclass">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED"/>
<data android:scheme="file"/>
</intent-filter>
</receiver>
로그인 없이 추천 가능합니다. 손가락 꾸욱~
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] Broadcast Receiver 에 대해 알아보자. (0) | 2012.02.18 |
---|---|
[Android/안드로이드] Battery 상태 감시하는 방법. (0) | 2012.02.18 |
[Android/안드로이드] Alarm Service 에 대해 알아본다. (0) | 2012.02.18 |
[Android/안드로이드] Service 에 대해 알아본다. (0) | 2012.02.18 |
[Android/안드로이드] paint에 shader 적용하기. (0) | 2012.02.18 |
댓글