最近在做一个支持U盘设备的平板,想请教下,如何判断是否有U盘接入,如何读取U盘的路径,Environment.getExternalStorageState()只能读取到SD卡的路径。 |
|
你好。
获取UBB等大容量的设备一般使用下面命令: Environment.getExternalUsbStorageDirectory().getPath(); 希望您试下。 |
|
但是,支持U盘好像要修改源代码。
|
|
getExternalUsbStorageDirectory()这个方法是找不到的,没有提供该方法 |
|
30分 |
如果支持U盘设备的话默认目录好像是/udisk,直接用这个路径不就可以了
|
10分 |
这要看固件了,外接设备都是厂商自己定义的,android没有直接的api获取
|
请问楼主有什么方法了吗?读取U盘
|
|
你从串口看Dev下的设备,当插上U盘时多出的接口,在/etc/vold.fstab的目录里添加U盘挂载项
|
|
请问楼主解决了吗?源码能给我发一份吗?
|
|
2210225420@qq.com
|
|
http://download.csdn.net/detail/alter888/7146089
这是例子,看看吧 |
|
楼主找到方法没有呀? 求知道
|
|
@Override
public void onReceive(Context context, Intent intent) { String path = intent.getDataString(); }///String path = intent.getDataString();这个就是获取的路径 |
|
网上找了好久 都是些sd卡 或者其他扯淡的玩意 没一个解决方案 浪费了半天时间 其实就那么一句话
|
|
都是扯淡啊!我觉得楼主和我遇到的问题一样,如果不通过广播,当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刚开始还没注册广播呢),共享出来感谢不尽啊! |
|
private static final String MOUNTS_FILE = “/proc/mounts”;
public static boolean isMounted(String path) { while ((strLine = reader.readLine()) != null) { android系统根目录下有/proc/mounts文件,里面有所有挂载信息,用以上方法应该可以判断某个路径是否挂载 |