我们知道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获得内/外置存储卡路径的方法,希望对大家有所帮助