Android: сохранить загруженные данные с помощью DownloadManager во внутреннюю память

Я загружаю данные с сервера, используя класс DownloadManager в Android. Я хочу сохранить данные во внутренней памяти (data/data/mypackage/files/...) вместо внешней памяти. Как это сделать?

DownloadManager dm = (DownloadManager) DownloadApplicationActivity.this.getSystemService(Context.DOWNLOAD_SERVICE);
    DownloadManager.Request req = new DownloadManager.Request(Uri.parse(MY_LINK));
    req.setTitle(MY_TITLE)
                    .setDescription("Downloading ....")
                    // download the package to the /sdcard/downlaod path.
                    .setDestinationInExternalPublicDir(
                            Environment.DIRECTORY_DOWNLOADS,
                            MY_PATH);
            long enqueue = dm.enqueue(req);

person b.i    schedule 10.07.2012    source источник
comment
Дубликат?   -  person Audrius    schedule 10.07.2012


Ответы (1)


Попробуйте что-то вроде этого:

// if there is no SD card
        if (Environment.getExternalStorageState() == null) {
            directory = new File(Environment.getDataDirectory()
                    + "/RobotiumTestLog/");
            photoDirectory = new File(Environment.getDataDirectory()
                    + "/Robotium-Screenshots/");

            // if no directory exists, create new directory
            if (!directory.exists()) {
                directory.mkdir();
            }

            // if phone DOES have sd card
        } else if (Environment.getExternalStorageState() != null) {
            // search for directory on SD card
            directory = new File(Environment.getExternalStorageDirectory()
                    + "/RobotiumTestLog/");
            photoDirectory = new File(
                    Environment.getExternalStorageDirectory()
                            + "/Robotium-Screenshots/");

            // if no directory exists, create new directory to store test
            // results
            if (!directory.exists()) {
                directory.mkdir();
            }
        }
person BlackHatSamurai    schedule 10.07.2012
comment
@BlaineOmega: как использовать этот код? setDestinationInExternalPublicDir (каталог, bla.ext) или что-то в этом роде? - person RvdK; 31.10.2012
comment
Нет, это просто код внутри метода. Если вы хотите создать метод с именем setDestinationInExternalPublicDir, вы можете просто поместить мой код внутрь метода. - person BlackHatSamurai; 01.11.2012