안드로이드 개발 질문/답변
(글 수 45,052)
현재 어플이 데이터를 저장할 경우에 메모리의 상태를 체크하여 1MB이상 남지 않았으면 경고문고를 띄우는 루틴을 만들고 있습니다.
그런데 문제가 어플이 설치된 위치를 알아야 체크할 수 있을 듯 싶습니다.
왜냐하면 어플이 설치될 경우의 수가
1. external sd card에 설치
2. intenal sd card에 설치
3.phone storage에 설치
로 나누어 질 수 있다고 생각합니다.
현재 사용되어질 파일의 path는 ex)data/data/com.xxx.xx.app/database/xxx.db입니다.
파일의 getPath()로 가져오니 ex와 같이 나옵니다.
어떻게 어플이 설치된 위치를 알 수 있을 까요?.
2010.07.12 20:45:15
애플리케이션 설치된 위치는 ApplicationInfo 의 FLAG_EXTERNAL_STORAGE로 알수 있습니다만 애플리케이션의 설치 위치와 상관없이 애플리케이션 내에서 쓰는 db파일등 Private 데이터는 여전히 내장 메모리에 저장됩니다.
2010.07.13 10:03:57
회색님 감사합니다.
자답할게요 ㅎㅎ
String currentPath = "";
currentPath = mConvDbAdapter.file.getPath();
StatFs stat = new StatFs(currentPath);
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
이런 식으로 해결하였습니다. 파일 path를 가져와서 현재 속해 있는 저장소의 statFs를 받아온 다음
사용 가능한 메모리의 블럭을 구했습니다. ^^ 참고해주셔요



