您的位置:首页 > 移动开发 > Android开发

Android 4.0获取外置SD卡 路径

2015-01-20 13:19 344 查看
今天突然有需求,获取手机外置SD卡路径,但Environment.getExternalStorageDirectory()获取的是内置SD卡路径,外置SD卡的名字会因为厂商,手机型号都不一样。

很蛋疼的是没有找到相关的API,直接获取的。只能想了个方案解决问题。

先上两张图,不同手机型号的。





1获取内部SD卡====>2获取上一级目录======>3获取子目录集合=======>4筛选出符合要求的

代码如下:

package com.example.storagedemo;

import java.io.File;

import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity {
private TextView tv;
StringBuffer buffer;
File innerDir;
File root;
File[] list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
innerDir = Environment.getExternalStorageDirectory();
root = innerDir.getParentFile();
list = root.listFiles();
buffer = new StringBuffer();
buffer.append("data目录:" + Environment.getDataDirectory());
buffer.append("\n");
buffer.append("下载缓存目录:" + Environment.getDownloadCacheDirectory());
buffer.append("\n");
buffer.append("外部存储媒体目录:" + Environment.getExternalStorageDirectory());
buffer.append("\n");
buffer.append("android根目录:" + Environment.getRootDirectory());
buffer.append("\n");
for (File file : list) {
if (file.compareTo(innerDir) != 0&&file.canWrite()) {
buffer.append("外接SD卡目录:" + file);
buffer.append("\n");
}
}
tv.setText(buffer);
}

}


看的朋友如果有好的方法,或者我的这个办法哪里不合适,欢迎留言。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: