Location of /Downloads folder for devices with and without SD card

前端 未结 2 1818
逝去的感伤
逝去的感伤 2020-12-20 00:41

Please let me know what are default locations for Downloads folder on devices with and without SD card.

And how can I check if particular phone doesn\'

相关标签:
2条回答
  • 2020-12-20 01:21

    I do not know the internal download location.

    To programmatically obtain the external download location, use:

    Environment.getExternalStorageDirectory()+"/Downloads/"
    

    Or at least, that is what is it on my HTC EVO 4G.

    For my app, i developed a simple class that detected the current state of the SD Card, simplified into human-understood terms. It can be easily done using

    Environment.getExternalStorageState()
    

    and comparing it to the various default states, defined under the Environment class. The important ones are Environment.MEDIA_REMOVED and Environment.MEDIA_SHARED. The first (i believe) tells you if there is any external storage at all and the second tells you if it is mounted or not.

    Note: when comparing the states, use .equals as they are strings, not integers like most state objects in Android.

    0 讨论(0)
  • 2020-12-20 01:29

    To check and see if a device has an SD card, you use: Environment.getExternalStorageState() if you don't have an SD card, you use: Environment.getDataDirectory()

    Essentially, if there is no SD card, you can create your own directory on the device locally. I've listed some code that might help:

    /*
                 * This sections checks the phone to see if there is a SD card. if
                 * there is an SD card, a directory is created on the SD card to
                 * store the test log results. If there is not a SD card, then the
                 * directory is created on the phones internal hard drive
                 */
                        //if there is no SD card, create new directory objects to make directory on device
                if (Environment.getExternalStorageState() == null) {
                                //create new file directory object
                    directory = new File(Environment.getDataDirectory()
                            + "/RobotiumTestLog/");
                    photoDirectory = new File(Environment.getDataDirectory()
                            + "/Robotium-Screenshots/");
                    /*
                     * this checks to see if there are any previous test photo files
                     * if there are any photos, they are deleted for the sake of
                     * memory
                     */
                    if (photoDirectory.exists()) {
                        File[] dirFiles = photoDirectory.listFiles();
                        if (dirFiles.length != 0) {
                            for (int ii = 0; ii <= dirFiles.length; ii++) {
                                dirFiles[ii].delete();
                            }
                        }
                    }
                    // 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 (photoDirectory.exists()) {
                        File[] dirFiles = photoDirectory.listFiles();
                        if (dirFiles.length > 0) {
                            for (int ii = 0; ii < dirFiles.length; ii++) {
                                dirFiles[ii].delete();
                            }
                            dirFiles = null;
                        }
                    }
                    // if no directory exists, create new directory to store test
                    // results
                    if (!directory.exists()) {
                        directory.mkdir();
                    }
                }// end of SD card checking
    

    Hope this helps.

    0 讨论(0)
提交回复
热议问题