android get all external storage path for all devices

后端 未结 3 1527
后悔当初
后悔当初 2021-01-06 19:34

getExternalStorageDirectory() return SD card path on my phone. (Huawei Y320 - android 4.2.2).

now, how to get path Pho

相关标签:
3条回答
  • 2021-01-06 20:05

    External directory can better be thought as media/shared storage. It is a filesystem that can hold a relatively large amount of data and that is shared across all applications (does not enforce permissions). Traditionally this is an SD card, but it may also be implemented as built-in storage in a device that is distinct from the protected internal storage and can be mounted as a filesystem on a computer.

    if you User data directory...

    Environment.getDataDirectory()
    

    Recommended reading : Android External Storage

    Cheers!

    0 讨论(0)
  • 2021-01-06 20:14

    try this code to get all external storage path for all devices

    File[] f = ContextCompat.getExternalFilesDirs(getApplicationContext(),null);
    for (int i=0;i< f.length;i++)
    {
      String path = f[i].getParent().replace("/Android/data/","").replace(getPackageName(),"");
      Log.d("DIRS",path); //sdcard and internal and usb
    }
    
    0 讨论(0)
  • 2021-01-06 20:23

    I'm using this method:

        public static final String SD_CARD = "sdCard";
        public static final String EXTERNAL_SD_CARD = "externalSdCard";
        private static final String ENV_SECONDARY_STORAGE = "SECONDARY_STORAGE";
    
        public static Map<String, File> getAllStorageLocations() {
            Map<String, File> storageLocations = new HashMap<>(10);
            File sdCard = Environment.getExternalStorageDirectory();
            storageLocations.put(SD_CARD, sdCard);
            final String rawSecondaryStorage = System.getenv(ENV_SECONDARY_STORAGE);
            if (!TextUtils.isEmpty(rawSecondaryStorage)) {
                String[] externalCards = rawSecondaryStorage.split(":");
                for (int i = 0; i < externalCards.length; i++) {
                    String path = externalCards[i];
                    storageLocations.put(EXTERNAL_SD_CARD + String.format(i == 0 ? "" : "_%d", i), new File(path));
                }
            }
            return storageLocations;
        }
    
    0 讨论(0)
提交回复
热议问题