下面是之前遇到此类问题,网上找的一篇文章解决的,方法验证过,可以解决不同手机多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中,我们可以通过反射来调用私有或隐藏的API,以获取外置SD卡路径。以下是一个简单的示例代码: ```java import java.lang.reflect.Method; public class SDDemo { public static String ...
这些方法返回的路径通常包含TF卡路径。 对于非开发人员,通过手机设置或文件管理器应用来访问TF卡更直观。在大多数Android设备中,用户可以在"存储"设置中查看SDcard的状态和容量。打开文件管理器应用,通常可以...
来获取内置SD卡的路径,但是每款定制过的android 系统的外置SD卡的路径都不一样,那我们怎么才能去获取这个路径呢,我们可以想其它的办法,我这里提供了一个类可以获取外置SD卡或内置SD卡的 label(名称),path(路径)...
在Android 6.0(API级别23)及更高版本中,系统对存储访问进行了权限管理,因此获取外置SD卡路径前,需要确保在`AndroidManifest.xml`中添加了相应的权限: ```xml <uses-permission android:name="android....
3. **SD卡**:在一些设备中,尤其是较旧的,SD卡和内置存储可能混用同一个路径,但在现代设备中,SD卡通常指的是外置TF卡。 获取这些路径的方法通常涉及使用Android的`Environment`类,它提供了获取各种存储路径的...
- 要获取真正的外置SD卡路径,可以尝试使用 `Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)`,然后找到它的父目录,但这并不总是可靠的,因为不同设备可能有不同的结构。...
凯立德android放外置TF卡专用的修改版 用于i9000 lg p990等有内置SD卡但又想放到外置TF卡上的
在Android系统中,移动文件是常见的操作,特别是当你...以上就是关于从Android外置TF卡文件夹复制文件到手机内存文件夹的核心知识点。通过理解这些概念和实践,你可以编写出能够有效处理文件转移的Android应用程序。
以前的Android(4.1之前的版本)中,SDcard跟路径通过“/sdcard”或者“/mnt/sdcard”来表示存储卡,而在Jelly Bean系统中修改为了“/storage/sdcard0”,以后可能还会有多个SDcard的情况。 目前为了保持和之前代码的...
1. **SD卡类型**:了解SD卡的类型,如标准SD卡、Micro SD卡(又名TF卡)以及它们的容量和速度等级,这些都是选择适合设备的SD卡时需要考虑的因素。 2. **数据迁移**:在进行内外SD卡交换前,可能需要将数据从一张卡...
5. **/mnt/sdcard/tflash**:这通常是TF卡的挂载点,也是用于扩展存储空间的。 6. **/nand**:NAND闪存是一种非易失性存储器类型,这里指的是设备内置的NAND闪存分区。 7. **/sdcard2** 和 **/sdcard/sd**:这些路径...