6
如何從應用中檢索您的手機內部存儲?我發現memoryinfo,但它似乎返回有關您當前正在運行的任務多少內存的信息。我試圖讓我的應用程序檢索有多少內部電話存儲可用。android內部手機存儲
如何從應用中檢索您的手機內部存儲?我發現memoryinfo,但它似乎返回有關您當前正在運行的任務多少內存的信息。我試圖讓我的應用程序檢索有多少內部電話存儲可用。android內部手機存儲
使用android.os.Environment
找到內部目錄,然後使用android.os.StatFs
來調用它的Unix statfs
系統調用。從Android設置應用程序無恥stolen:
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(this, availableBlocks * blockSize);
我很難有礦工。所以我想分享一下我的工作代碼來節省一些人的時間。
在32GB設備和1GB設備上進行測試。
// Return size is in Megabytes
public class DeviceMemory {
public static long getInternalStorageSpace()
{
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
//StatFs statFs = new StatFs("/data");
long total = ((long)statFs.getBlockCount() * (long)statFs.getBlockSize())/1048576;
return total;
}
public static long getInternalFreeSpace()
{
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
//StatFs statFs = new StatFs("/data");
long free = ((long)statFs.getAvailableBlocks() * (long)statFs.getBlockSize())/1048576;
return free;
}
public static long getInternalUsedSpace()
{
StatFs statFs = new StatFs(Environment.getDataDirectory().getAbsolutePath());
//StatFs statFs = new StatFs("/data");
long total = ((long)statFs.getBlockCount() * (long)statFs.getBlockSize())/1048576;
long free = ((long)statFs.getAvailableBlocks() * (long)statFs.getBlockSize())/1048576;
long busy = total - free;
return busy;
}
}