下面是之前遇到此类问题,网上找的一篇文章解决的,方法验证过,可以解决不同手机多TF卡的情况。
Android获取外部SDcard的官方调用是
Environment.getExternalStorageDirectory()
但是根据不同机型,是有不同的结果的。
如果手机支持TF卡扩展,并且本身没有大容量存储,比如说HTC老款手机 G3之类的,那么获取到的是TF卡的路径。这是对的。
如果手机本身有大容量存储,不论手机是否支持TF卡扩展,比如现在HTC系列高端手机One X,或者920 butterfly系列,那么获取到的是大容量存储的路径。
也就是说,如果手机本身具有大容量存储,又支持TF卡扩展,通过这条命令是无法获取到TF卡信息的。
我查了半天,没有看到明确获取到扩展存储的API方法,如果有,请你告诉我,谢谢。(cst05001 at 狗妹儿)
那么怎么解决这个问题呢。网上有人说用/sdcard/extSdCard路径之类,这是不对的。因为不同的ROM,对外部存储的挂载点是会不一样的。比如三星国行,挂载点是/Storage/extSdCard 。
这是我从系统角度想到的解决办法,不用越狱,不用权限。大家可以参考:
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
String mount = new String();
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if (line.contains("secure")) continue;
if (line.contains("asec")) continue;
if (line.contains("fat")) {
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
mount = mount.concat("*" + columns[1] + "\n");
}
} else if (line.contains("fuse")) {
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
mount = mount.concat(columns[1] + "\n");
}
}
}
txtView.setText(mount);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
相关推荐
Android 通过反射获取外置SD卡路径 Android 通过反射获取外置SD卡路径 Android 通过反射获取外置SD卡路径
来获取内置SD卡的路径,但是每款定制过的android 系统的外置SD卡的路径都不一样,那我们怎么才能去获取这个路径呢,我们可以想其它的办法,我这里提供了一个类可以获取外置SD卡或内置SD卡的 label(名称),path(路径)...
android手机外置SDcard(TF卡)获取方法,非内置sdcard!
Unity程序获取外置SD卡路径方法,包内包含PicoVR SDK,场景安装打包在手机上,可以看到分屏反畸变效果。
获取SD卡 TF卡存储路径 比网上的资源更优化了一点 读取速度更快
android 系统没有获取外置SD卡的函数可调用,所以我们可以想到其它的办法来获取,在这项代码中有一个Dev_MountInfo的类,使用方法: Dev_MountInfo dev = Dev_MountInfo.getIntance(); 得到内置卡信息: Dev_...
凯立德android放外置TF卡专用的修改版 用于i9000 lg p990等有内置SD卡但又想放到外置TF卡上的
Android设备从外置TF卡文件夹中复制指定文件到到另手机内存文件夹中
Android 获取SD卡路径: 外置sd卡路径,也许很多同学在平时的工作中并不会用到,因为现在很多机型都不支持外置sd卡(这也是Google目标),所以并不用考虑外置sd卡的路径问题。除了开发文件管理类的应用之外,其他应用...
android 读取外置和内置存储卡路径和大小,亲测好使,项目中以运用
android 未提供获取外置SD储存卡的相应函数或方法。当前只能用Environment.getExternalStorageDirectory()获取内置的SD卡路径,因为不同机型的系统SD卡的路径不相同,我拿三星s3试试,全是都只找到内置SD卡,后来...
在Android N上并没有提供直接的方法获取外置SD卡或挂载U盘路径,可以通过下面方法获取内置sd卡路径 Environment.getExternalStorageDirectory().getAbsolutePath(); 通过查看getExternalStorageDirectory源码发现,...
用于测试网上查到的各种获取外置sd卡路径方法。
Android 通过反射调用获取内置存储和外置sd卡根路径(适用于各个版本)
获取外置SDcard路径,进行创建,写入,读取,删除操作。
android 获取外置内存卡android获取sdcard内存路径android判断外置sd卡是否存在Android 获取内外置存储卡方法
但是通过Environment.getExternalStorageDirectory()获取的是内置的存储卡位置 (也有的手机可以在系统中修改默认存储) 那么如何获取外置存储卡的位置呢? 我们可以通过StorageManager来获取多个外置sdcard,代码如下...
android 读取外置和内置存储卡路径和大小.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
由于现在大多数手机都是带有内存的,原本获取外置SD卡路径的方法Environment.getExternalStorageDirectory() 获取得到的是手机自身内存的根目录。那么我们要怎么来获取到外置SD卡的路径,首先需要A判断是否挂载了sdk...