android 获取U盘路径

lh329342579 2012-07-25 05:14:17
最近在做一个支持U盘设备的平板,想请教下,如何判断是否有U盘接入,如何读取U盘的路径,Environment.getExternalStorageState()只能读取到SD卡的路径。
...全文
7242 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码科技 2015-04-18
  • 打赏
  • 举报
回复
private static final String MOUNTS_FILE = "/proc/mounts"; public static boolean isMounted(String path) { boolean blnRet = false; String strLine = null; BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(MOUNTS_FILE)); while ((strLine = reader.readLine()) != null) { if (strLine.contains(path)) { blnRet = true; break; } } } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } reader = null; } } return blnRet; } android系统根目录下有/proc/mounts文件,里面有所有挂载信息,用以上方法应该可以判断某个路径是否挂载
qq_18953073 2014-08-05
  • 打赏
  • 举报
回复
都是扯淡啊!我觉得楼主和我遇到的问题一样,如果不通过广播,当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刚开始还没注册广播呢),共享出来感谢不尽啊!
菜菜菜鸟6 2014-06-24
  • 打赏
  • 举报
回复
网上找了好久 都是些sd卡 或者其他扯淡的玩意 没一个解决方案 浪费了半天时间 其实就那么一句话
菜菜菜鸟6 2014-06-24
  • 打赏
  • 举报
回复
@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();这个就是获取的路径
lppppp 2014-05-18
  • 打赏
  • 举报
回复
楼主找到方法没有呀? 求知道
Alter888 2014-04-04
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/alter888/7146089 这是例子,看看吧
Alter888 2014-03-17
  • 打赏
  • 举报
回复
2210225420@qq.com
Alter888 2014-03-17
  • 打赏
  • 举报
回复
请问楼主解决了吗?源码能给我发一份吗?
FCARM 2013-01-10
  • 打赏
  • 举报
回复
你从串口看Dev下的设备,当插上U盘时多出的接口,在/etc/vold.fstab的目录里添加U盘挂载项
pianosanicwer 2013-01-09
  • 打赏
  • 举报
回复
请问楼主有什么方法了吗?读取U盘
Young_2717 2012-07-31
  • 打赏
  • 举报
回复
如果支持U盘设备的话默认目录好像是/udisk,直接用这个路径不就可以了
DrSmart 2012-07-31
  • 打赏
  • 举报
回复
这要看固件了,外接设备都是厂商自己定义的,android没有直接的api获取
lh329342579 2012-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你好。
获取UBB等大容量的设备一般使用下面命令:
Environment.getExternalUsbStorageDirectory().getPath();
希望您试下。
[/Quote]
getExternalUsbStorageDirectory()这个方法是找不到的,没有提供该方法
未雨 2012-07-25
  • 打赏
  • 举报
回复
但是,支持U盘好像要修改源代码。
未雨 2012-07-25
  • 打赏
  • 举报
回复
你好。
获取UBB等大容量的设备一般使用下面命令:
Environment.getExternalUsbStorageDirectory().getPath();
希望您试下。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧