안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요~ 질문이 있어서 이렇게 글 남깁니다.
기본 갤러리 처럼 이미지파일을 사용할려면 mediastore에 등록을 해줘야 사용가능 하잖아요?
그래서 이미지 파일을 등록을 할려고 한 100개 정도 되는 파일을 for문을 사용하여 일괄적으로 insert를 날렸습니다.
그런데 한 3~4개 정도 등록하다가 멈춰 버리는현상이 발생했습니다.
디버깅하다가 보면 밑에 표시된 insert부분에서 항상 멈춥니다.
동작은 스레드에서 이루어지며 안드로이드폰 기본 사진저장폴더인 dcim/camera안에있는 파일을 등록할때 해당 오류가
발생합니다.
넥서스원에서는 정상 동작하는데 갤럭시 S에서 이런 현상이 발생하네요..
넥서스원 버전은 2.2.1 이고 갤럭시 S는 2.2 입니다.
조언 부탁드립니다...ㅠㅠ
ContentResolver cr = mContext.getContentResolver();
Uri STORAGE_URI = Images.Media.EXTERNAL_CONTENT_URI;
File f = new File(path);
long dateTaken = System.currentTimeMillis();
ContentValues values = new ContentValues(7);
values.put(Images.Media.TITLE, "title");
values.put(Images.Media.DISPLAY_NAME, f.getName());
values.put(Images.Media.DATE_TAKEN, dateTaken);
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.ORIENTATION, 0);
values.put(Images.Media.DATA, path);
values.put(Images.Media.SIZE, f.length());
cr.insert(STORAGE_URI, values); // 이곳에서 멈춤
기본 갤러리 처럼 이미지파일을 사용할려면 mediastore에 등록을 해줘야 사용가능 하잖아요?
그래서 이미지 파일을 등록을 할려고 한 100개 정도 되는 파일을 for문을 사용하여 일괄적으로 insert를 날렸습니다.
그런데 한 3~4개 정도 등록하다가 멈춰 버리는현상이 발생했습니다.
디버깅하다가 보면 밑에 표시된 insert부분에서 항상 멈춥니다.
동작은 스레드에서 이루어지며 안드로이드폰 기본 사진저장폴더인 dcim/camera안에있는 파일을 등록할때 해당 오류가
발생합니다.
넥서스원에서는 정상 동작하는데 갤럭시 S에서 이런 현상이 발생하네요..
넥서스원 버전은 2.2.1 이고 갤럭시 S는 2.2 입니다.
조언 부탁드립니다...ㅠㅠ
ContentResolver cr = mContext.getContentResolver();
Uri STORAGE_URI = Images.Media.EXTERNAL_CONTENT_URI;
File f = new File(path);
long dateTaken = System.currentTimeMillis();
ContentValues values = new ContentValues(7);
values.put(Images.Media.TITLE, "title");
values.put(Images.Media.DISPLAY_NAME, f.getName());
values.put(Images.Media.DATE_TAKEN, dateTaken);
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.ORIENTATION, 0);
values.put(Images.Media.DATA, path);
values.put(Images.Media.SIZE, f.length());
cr.insert(STORAGE_URI, values); // 이곳에서 멈춤




중간에 멈출때에는 매번 delete, insert를 날리지말고
한번에 모아서 delete, insert를 하면 됩니다.
delete시에는 where절을 만들어서 or로 묶어서 날리고
insert는 ContentValues를 배열로 만들어서 bulkInsert를 하면 됩니다.
delete시 Where절에서 스트링이 제대로 들어갔는지 확인을 해야합니다.
안그러면 핸폰상의 사진같은거는 전부 사라집니다...