从我的Android应用程序中尝试使用内部存储。换句话说,我需要在App信息中显示存储值(查看截图图片)。我试过下面的代码,但是我得到的价值低于appinfo中显示的存储价值。请帮助我解决我所缺少的问题。
public void GetOccupyMemory() {
total_usage = getFileDataSize() + getFolderSize();
}
public long getFileDataSize() {
long size = 0;
File filedir = getActivity().getFilesDir().getParentFile();
for (File fdir : filedir.listFiles()) {
if (fdir.isDirectory()) {
long dirfiles = getSize(fdir);
size += dirfiles;
} else {
size += fdir.length();
}
}
return size / (1024 * 1024);
}
public long getFolderSize() {
try {
long apsize = new File(getActivity().getPackageManager().getApplicationInfo(getActivity().getPackageName(), 0).sourceDir).length();
return apsize / (1024 * 1024);
} catch (Exception e) {
return 0;
}
}