你好。
获取UBB等大容量的设备一般使用下面命令:
Environment.getExternalUsbStorageDirectory().getPath();
希望您试下。

解决方案 »

  1. getExternalUsbStorageDirectory()这个方法是找不到的,没有提供该方法
      

  2. 如果支持U盘设备的话默认目录好像是/udisk,直接用这个路径不就可以了
      

  3. 这要看固件了,外接设备都是厂商自己定义的,android没有直接的api获取
      

  4. 你从串口看Dev下的设备,当插上U盘时多出的接口,在/etc/vold.fstab的目录里添加U盘挂载项
      

  5. http://download.csdn.net/detail/alter888/7146089
    这是例子,看看吧
      

  6. @Override
    public void onReceive(Context context, Intent intent) { String path = intent.getDataString();
    path = path.substring(11) + "/"; // path=file:///mnt/usb
    if (intent.getAction().equals(Intent.ACTION_MEDIA_MOUNTED)
    || intent.getAction().equals(Intent.ACTION_MEDIA_CHECKING)) {
    msg.arg1 = USB_STATE_ON;
    } else {
    msg.arg1 = USB_STATE_OFF;
    Toast.makeText(context, "USB被拔出", Toast.LENGTH_LONG).show();
    } }///String path = intent.getDataString();这个就是获取的路径
      

  7. 都是扯淡啊!我觉得楼主和我遇到的问题一样,如果不通过广播,当APP第一次运行时,广播还未实现插拔监听,如何知道USB 或者SD卡已挂载。查了半天API也没找到直接获取USB挂载状态的API,我只能另想办法。
    因为android系统在有外接设备时会自动往此挂载路径写入一个“LOST.DIR”文件夹,若是没有挂载,即使有路径也是空,所以我只能通过死路径(比如:/mnt/udisk)
    String path = "/mnt/udisk";
    File file = new FIle(path);
    if(file.length()  == 0){}
    这个笨办法来判断USB设备是否挂载,但是这个方法自己都看不过眼,要是底层定制时更改了USB存储设备路径或名称就傻逼了,不知是否有高人完美解决这个方法(注:不要再说用什么广播监听之类的办法了,APP刚开始还没注册广播呢),共享出来感谢不尽啊!
      

类似问题 »