Android获取U盘媒体,Android动态获取U盘路径

本文介绍了一种通过Java代码利用Runtime和exec方法,结合sh命令与awk解析,获取Android系统中动态挂载的USB设备路径的方法,适用于解决权限和不同厂商awk命令调整的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上很多博客说了很多的办法,大多数不是获取的外接U盘,而获取到的是内置SD,可以通过系统mount命令来查找挂载的设备,具体的解决办法如下:

Runtime runtime = Runtime.getRuntime();

Process proc = runtime.exec(new String[] { "/system/bin/sh", "-c", "mount | grep usb  |busybox awk '{if($3~/usb/)print $3}'" });

InputStream is = proc.getInputStream();

InputStreamReader isr = new InputStreamReader(is, "GBK");

String line = "";

int loop = 0;

BufferedReader br = new BufferedReader(isr);

while ((line = br.readLine()) != null) {

Log.d(TAG, "loop " + loop + " readLine = " + line);

//此处保存至路径的buffer中供使用

}

这样获取到的是动态挂载在系统的所有USB路径,其中不同的方案商肯awk命令中截取的字段不一样,可以按需修改(即$后的数字)

其中若有读写权限问题,可以查看 https://mp.csdn.net/postedit/80976081

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值