1

我们的安卓平板电脑(版本 4.0.3)中有一个 USB 端口。

  1. 我们如何找出连接在该端口上的任何 PenDrive。
  2. 我们如何通过在android中以编程方式访问连接在该端口上的USB Pendrive中的文件。

我们有一个/mnt包含的文件夹

asec extsd obb sdcard secure usbhost1

  1. 如何以编程方式识别哪一个是Internal Memory Path和。External SD Card PathUSB Path

  2. 使用此文件夹的目的是什么asecobb以及secure

提前致谢。

问候巴拉

4

3 回答 3

2

我想使用你需要使用的外部 sdcard:

new File("/mnt/external_sd/")

或者

new File("/mnt/extSdCard/")

或者

new File("/mnt/usb_storage")

代替 Environment.getExternalStorageDirectory()

为我工作。您应该首先检查目录 mnt 中的内容,然后从那里开始工作。

您应该使用某种类型的选择方法来选择要使用的 sdcard:

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/

于 2012-07-02T12:58:31.617 回答
1

我们如何找出连接在该端口上的任何 PenDrive。

在 Android SDK 中没有记录和支持的方法可以做到这一点。您需要与您的设备制造商交谈,并获得他们关于如何为他们的特定设备执行此操作的建议。

我们如何通过在android中以编程方式访问连接在该端口上的USB Pendrive中的文件。

往上看。

于 2012-07-02T13:00:12.343 回答
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;
    }
于 2013-06-13T10:57:46.050 回答