lgxing 2012-11-14 18:03 采纳率: 100%
浏览 13353
已采纳

各位android的高手,请问怎么得到,判断一台机器上usb盘的目录是什么

各位android的高手,请问怎么得到,判断一台机器上usb盘的目录是什么
或者怎么判断一个路径是不是usb盘的

一个实例如下(我现在的一个android设备现状):
1,有内部存储器sdcard,具体路径:/mnt/sdcard
2,有tf卡,具体路径:/mnt/ext_sd
3,有u盘,具体路径:/mnt/usbhost1
我可以得到/mnt/usbhost1,并且确定其是u盘的路径

但是其他设备不一定会和我这个设备相同,
比如有的设备u盘路径可能是/mnt/sda1,tf卡设备路径可能是/mnt/tfcard

我想知道有没有方法可以获取到/mnt/sda1,并且确定其是u盘的路径而不是tf卡路径

我现在是通过以下方法判断的

String devicePath = intent.getDataString().toLowerCase().substring(7);
if (devicePath.contains("usb"))
{
   //这个是u盘
}

但是这并不准确,如上面的/mnt/sda1

  • 写回答

4条回答 默认 最新

  • Jobernowl 2012-11-14 19:37
    关注

    Environment.getExternalStoragePublicDirectory()
    Context.getExternalFilesDir()
    public static String getExtSDCard(){
    File[] files=new File("/mnt").listFiles();
    String sdcard=Environment.getExternalStorageDirectory().getAbsolutePath().toLowerCase();
    String file;
    for (int i = 0; i < files.length; i++) {
    file=files[i].getAbsolutePath().toLowerCase();
    if(!file.equals(sdcard)&&(file.contains("ext")||file.contains("sdcard"))){
    return file;
    }
    }
    return null;
    }

    改进一下
    你也可以遍历mnt路径下面的所有设备 使用

    StatFs statFs=new StatFs(path);
    

    来读取大小信息 大的自然就是存储卡了 然后再根据名字来排除内部sdcard即可获得外部存储卡路径
    public static String getExtSDCard(){
    File[] files=new File("/mnt").listFiles();
    String sdcard=Environment.getExternalStorageDirectory().getAbsolutePath();
    String file;
    for (int i = 0; i < files.length; i++) {
    file=files[i].getAbsolutePath();
    if(!file.equalsIgnoreCase(sdcard)&&file.contains("ext")){
    return file;
    }

        }
        return null;
    }
    

    你可以这么做 根据经验所有sdcard都在mnt下面 首先获取默认sdcard的路径 然后遍历mnt下面的所有设备 如果出了默认sdcard之外还有别的设备名字包含"ext"字符的 则返回该设备名字(极大可能是扩展sdcard)

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部