从Android平板电脑访问USB Pendrive

时间:2012-07-02 12:53:55

标签: android usb

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

  1. 我们如何找到在该端口上连接的任何PenDrive。
  2. 我们如何通过android中的编程方式访问连接在该端口上的USB Pendrive中的文件。
  3. 我们有/mnt包含的文件夹

    asec extsd obb sdcard secure usbhost1

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

    2. 使用此文件夹asecobbsecure的目的是什么。

    3. 提前致谢。

      此致 巴拉

3 个答案:

答案 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;
    }