android4.0有两个sd卡路径? sdCardDir = Environment.getExternalStorageDirectory();这个难道获取的不是sd卡路径 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个是手机内存sdcard0,一个是sd卡sdcard1。 sdCardDir = Environment.getExternalStorageDirectory();这个难道获取的不是sd卡路径,我用这个为什么没有写到sd卡,??? 问题是为什么 Environment.getExternalStorageDirectory();得到的不是sd卡路径 为什么?????????问题是为什么 Environment.getExternalStorageDirectory();得到的不是sd卡路径 一个是内置,一个是外置的内置即你买手机时说的xxG 看着这贴的回复我都纠结了,,回的什么贴明显就是骗积分的嘛,..我也不是清楚。Environment.getExternalStorageDirectory()这个只是获取一个外置sd卡。但是4.0以后很多手机rom很大了且有些根本不需要外置sd卡了,于是安卓4.0后就会把机身内存rom还划分一部分当作外置sd卡使用,而且这个Environment.getExternalStorageDirectory()不同的手机厂商获取的目录名字可能不同哦大部分是/mnt/sdcard,不过你完全可以当作“外置sd卡使用了 是啊,我也是只能读取到sdcard0,楼主说下解决办法啊 具体的API没找到,但是我有一个方案。通过内部SD卡目录获取上一级菜单,然后得到和内部SD卡同级文件夹列表,得到外部SD卡目录。PS:因为SD卡是可读可写的,可以以此作为判定条件。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); }如果有人看到这个贴,有更好答案的话就贴上来吧,4.0之后改进很多,写程序也有些麻烦 在其他地方找到一种解决方案:3.0以上可以通过反射获取:StorageManager sm = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);// 获取sdcard的路径:外置和内置String[] paths = (String[]) sm.getClass().getMethod("getVolumePaths", null).invoke(sm, null);源自:http://www.oschina.net/question/157093_108899 开机后NotificationService的启用原理 apk文件下载问题 【Java 基础】想学习 Android 开发,需要多少Java基础呢? 急。有关Android图库问题。 同一布局中onClick和onLongClick事件冲突 android怎样实现左右滑动切换图片,上下移动时滚动图片 文件下载问题 大神帮忙:Android这种效果怎么做啊?(最后点分了) 问Android开发工资,前景··· 请教高手:能否判断widget主画面被遮挡或是不在当前屏幕显示? 如何调用系统视频播放工具 一端android求解释是什么意思
我用这个为什么没有写到sd卡,???
内置即你买手机时说的xxG
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);
}
如果有人看到这个贴,有更好答案的话就贴上来吧,4.0之后改进很多,写程序也有些麻烦
StorageManager sm = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
// 获取sdcard的路径:外置和内置
String[] paths = (String[]) sm.getClass().getMethod("getVolumePaths", null).invoke(sm, null);源自:http://www.oschina.net/question/157093_108899