从我的 Android 应用程序中,我试图使用内部存储。换句话说,我需要在应用信息中显示存储值(检查屏幕截图)。我尝试了下面的代码,但我得到的价值低于 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;
}
}