我们的Android平板电脑(版本4.0.3)中有一个USB端口。
我们有/mnt
包含的文件夹
asec
extsd
obb
sdcard
secure
usbhost1
如何以编程方式识别哪个是Internal Memory Path
,External SD Card Path
和USB Path
。
使用此文件夹asec
,obb
和secure
的目的是什么。
提前致谢。
此致 巴拉
答案 0 :(得分:2)
我想使用外部SD卡需要使用它:
new File("/mnt/external_sd/")
OR
new File("/mnt/extSdCard/")
OR
new File("/mnt/usb_storage")
替换Environment.getExternalStorageDirectory()
适合我。您应该首先检查目录mnt中的内容,然后从那里开始工作..
您应该使用某种类型的选择方法来选择使用哪个SD卡:
File storageDir = new File("/mnt/");
if(storageDir.isDirectory()){
String[] dirList = storageDir.list();
//TODO some type of selecton method?
}
“笔式驱动器”位于/ mnt /中(就像4.0中的所有其他存储设备一样)
某些设备可能会有所不同,因为运行4.0.3 usb存储的Acer Iconia A500位于/mnt/usb_storage/
答案 1 :(得分:1)
我们如何找到在该端口上连接的任何PenDrive。
在Android SDK中没有记录和支持的方法。您需要与设备制造商联系,并获取有关如何为其特定设备执行此操作的建议。
我们如何通过android中的编程方式访问连接在该端口上的USB Pendrive中的文件。
见上文。
答案 2 :(得分:0)
* 使用此功能,您可以在USB中找到路径并评估文件 *
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
// t1.show();
available = 1;
finalpath = mount;
break;
} else {
}
}
}
}
if (available == 1) {
} else if (available == 0) {
finalpath = patharray[0];
}
} catch (Exception e) {
}
return finalpath;
}