我試圖計算Android中使用的文件存儲的總量。我使用了遞歸函數here計算的免費大小與系統統計數據有所不同
當我從SD卡的總存儲中減去這個大小時,我得到的數字與使用StatFs時Android的數值不同。
StatFs stat = new StatFs(path);
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getFreeBlocks();
return Formatter.formatFileSize(ctx, availableBlocks * blockSize);
這不是幾個Kb的差異,而是一個16GB SD卡的最大2GB。
我檢查了幾個存儲分析應用程序在市場上存在,他們也有同樣的問題。他們說我有8.3 Gb免費,而Android一直告訴它是6Gb(這與將手機連接到我的PC時獲得的價值相同)。
我們在這裏失蹤了什麼?
您是否能夠訪問整個磁盤?如果您在SD上安裝了應用程序,則您的功能可能不會將這些應用程序添加到「已用」總計中。 – Geobits 2013-03-04 13:58:52
其實我正在使用Galaxy Nexus,它沒有一個正確的SD卡,而是一個模擬的。不過,我想這個原則也適用。我會嘗試紮根我的設備。 – 2013-03-04 14:01:32
即使沒有生根,你甚至不能獲得SD部分的大小? – 2013-03-04 14:03:19