Android-хранилище показывает неправильное количество - PullRequest
0 голосов
/ 28 декабря 2018

Я проверил доступное хранилище для моего приложения, которое использует локальное частное хранилище.Независимо от того, какой метод я называю, он не показывает то, что показывает файловый браузер Android или Windows.

Вот мой код:

public static long getAvailableMemory()
    {
    Log.i(TAG, "getAvailableMemory: start");
    long bytesAvailable = 0;
    try
        {
        StatFs stat;
        // Root
        stat = new StatFs(Environment.getRootDirectory().getAbsolutePath());
        bytesAvailable = stat.getAvailableBytes();
        Log.d(TAG, "Root.Absolute.AvailableBytes = " + bytesAvailable);
        bytesAvailable = stat.getFreeBytes();
        Log.d(TAG, "Root.Absolute.FreeBytes = " + bytesAvailable);
        // Data
        stat = new StatFs(Environment.getDataDirectory().getAbsolutePath());
        bytesAvailable = stat.getAvailableBytes();
        Log.d(TAG, "Data.Absolute.AvailableBytes = " + bytesAvailable);
        bytesAvailable = stat.getFreeBytes();
        Log.d(TAG, "Data.Absolute.FreeBytes = " + bytesAvailable);
        // External
        stat = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());
        bytesAvailable = stat.getAvailableBytes();
        Log.d(TAG, "External.Absolute.AvailableBytes = " + bytesAvailable);
        bytesAvailable = stat.getFreeBytes();
        Log.d(TAG, "External.Absolute.FreeBytes = " + bytesAvailable);
        // Local
        File file = new File(Settings.pathToThumbnails);
        bytesAvailable = file.getUsableSpace();
        Log.d(TAG, "File.UsableSpace = " + bytesAvailable);
        }
    catch (Exception e)
        {
        e.printStackTrace();
        }
    //      Log.d(TAG, "getAvailableMemory: bytesAvailable = " + bytesAvailable);
    return bytesAvailable;
    }

Файловый браузер Android: 1.65GB

Файловый браузер Windows: 1 745 756 160 (1,62)

Запуск приложения, Журнал:

12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Root.Absolute.AvailableBytes = 209154048
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Root.Absolute.FreeBytes = 209154048
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Data.Absolute.AvailableBytes = 1769209856
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: Data.Absolute.FreeBytes = 1774452736
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: External.Absolute.AvailableBytes = 1748234240
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: External.Absolute.FreeBytes = 1748234240
12-24 08:06:58.966 11835-11835 D/*~MAIN ACTIVITY: File.UsableSpace = 1769205760

Я не уверен, какую именно цифру использовать для тестирования моего приложения.Я не знаю, откуда берутся 1,65 ГБ, которые сообщает Android.Я просто хочу узнать, сколько свободного места осталось для моего приложения, чтобы сохранить миниатюры в локальном хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...