我工作的一个Android应用程序从USB读取数据。 该USB可以连接带有串口Android和我的应用程序可以找到它。
现在,我想读的数据文件和文件夹USB。 我已经看了很多文章。 我发现他们使用此代码:
Environment.getExternalStorageDirectory();
但是在我的情况,我得到的路径是/存储/模拟/ 0。 当我试着去阅读所有这些都包含在路径中的文件,我得到了以下声明:
/storage/emulated/0/Android
/storage/emulated/0/Music
/storage/emulated/0/Podcasts
/storage/emulated/0/Ringtones
等等。
但我的USB的路径没有找到。 所以,我不知道是不是从USB读取文件的正确方法?
这里是我的代码:
File f = Environment.getExternalStorageDirectory();
File[] files = f.listFiles();
String fol = "";
for (File inFile : files) {
if (inFile.isDirectory()) {
fol += inFile.toString()+"\n";
}
}
TextView tv = (TextView) findViewById(R.id.demoTitle);
tv.setText(fol);
通过使用此代码获取所有安装设备
public String getStoragepath() {
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
String[] patharray = new String[10];
int i = 0;
int available = 0;
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
String mount = new String();
if (line.contains("secure"))
continue;
if (line.contains("asec"))
continue;
if (line.contains("fat")) {// TF card
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
mount = mount.concat(columns[1] + "/requiredfiles");
patharray[i] = mount;
i++;
// check directory is exist or not
File dir = new File(mount);
if (dir.exists() && dir.isDirectory()) {
// do something here
available = 1;
finalpath = mount;
break;
} else {
}
}
}
}
if (available == 1) {
} else if (available == 0) {
finalpath = patharray[0];
}
} catch (Exception e) {
}
return finalpath;
}