How to find the path of USB which is mounted to android?
android, usb-flash-drive, usbserial
Solution
get all mounted device by using this code
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;
}
Problem
I am working on an android application to read data from USB. The usb can be connected to android with serial port and my app can find it. Now, I want to read data files and folder from USB. I have read many articles. I found that they use this code : ``` Environment.getExternalStorageDirectory(); ``` However in my case, I got that the path is /storage/emulated/0. When I try to read all the files which are contained in the path, I got the following statements: ``` /storage/emulated/0/Android /storage/emulated/0/Music /storage/emulated/0/Podcasts /storage/emulated/0/Ringtones ``` and etc. but the path of my usb is not found. So, I'm not sure is it the correct way to read files from USB? Here is my code : ``` 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); ```