마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

데이터 베이스 파일 sd카드 백업 노트9

0 추천

제가 한 어플을 만들 었는데요

데이터베이스 파일을 sd카드에 백업을 시켜서 어플을 지웠다 깔아도 유지가 되는 소스를 짜고

정상적으로 잘 사용하고 있었습니다.

근데 요번에 노트9 사용자가 문의를 보냈는데 백업이 안되고 지웠다 깔아도 유지가 안된다고 하네요...

File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
    File currentDB = new File(data, "/data/패키지/databases/database.db");
    File backupDB = new File(sd, "database.db");
    FileChannel src = new FileInputStream(currentDB).getChannel();
    FileChannel dst = new FileOutputStream(backupDB).getChannel();
    dst.transferFrom(src, 0, src.size());
    src.close();
    dst.close();

이런식으로 sd카드에 저장을 시키는데 노트9에선 적용이 안되는건가 모르겠네요....

당연히 파일 액세스 권한도 따로 요청해서 허용을 한 상태 입니다 

노트9 주변에도 없어서 테스트도 못해보고 ㅠㅠ;; 난감하네요

뭐가 문제일까요...

안드초보자a (210 포인트) 님이 2018년 8월 24일 질문

1개의 답변

0 추천

db 경로가 "/data/패키지/databases/database.db" 맞나요?

보통 "/data/data/패키지/databases/database.db" 일텐데요..


Path dbpath = context.getDatabasePath(database.db); 와 같이 context에서 db 경로를 가져오게 변경 해 보세요.

 

익명사용자 님이 2018년 8월 27일 답변
저 소스로 반년 넘게 문제없이 백업 잘됬는데 요번 노트9 사용자가 처음으로 문제를 제기해서요ㅠㅠ
...