我们知道Android上一般都有外置的存储卡,

但是通过Environment.getExternalStorageDirectory()获取的是内置的存储卡位置 (也有的手机可以在系统中修改默认存储) 那么如何获取外置存储卡的位置呢?

我们可以通过StorageManager来获取多个外置sdcard,代码如下:

StorageManager storageManager = (StorageManager) cxt.getSystemService(Context.STORAGE_SERVICE);

try {

Method method = StorageManager.class.getDeclaredMethod("getVolumePaths");

method.setAccessible(true);

Object result = method.invoke(storageManager);

if (result != null && result instanceof String[]) {

String[] pathes = (String[]) result;

StatFs statFs;

for (String path : pathes) {

if (!TextUtils.isEmpty(path) && new File(path).exists()) {

statFs = new StatFs(path);

if (statFs.getBlockCount() * statFs.getBlockSize() != 0) {

pathsList.add(path);

}

}

}

}

} catch (Exception e) {

e.printStackTrace();

File externalFolder = Environment.getExternalStorageDirectory();

if (externalFolder != null) {

pathsList.add(externalFolder.getAbsolutePath());

}

}

}

return pathsList.toArray(new String[pathsList.size()]);

以上所述是小编给大家介绍的Android获得内/外置存储卡路径的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐