红木家具网站建设总体规划,怎么建设一个购买卡密的网站,百通互联网站建设,懂做网站怎么赚钱2019独角兽企业重金招聘Python工程师标准 以前的Android(4.1之前的版本)中#xff0c;SDcard跟路径通过“/sdcard”或者“/mnt/sdcard”来表示存储卡#xff0c;而在Jelly Bean系统中修改为了“/storage/sdcard0”#xff0c;以后可能还会有多个SDcard的情况。… 2019独角兽企业重金招聘Python工程师标准 以前的Android(4.1之前的版本)中SDcard跟路径通过“/sdcard”或者“/mnt/sdcard”来表示存储卡而在Jelly Bean系统中修改为了“/storage/sdcard0”以后可能还会有多个SDcard的情况。 目前为了保持和之前代码的兼容sdcard路径做了link映射。 为了使您的代码更加健壮并且能够兼容以后的Android版本和新的设备请通过Environment.getExternalStorageDirectory().getPath()来获取sdcard路径 如果您需要往sdcard中保存特定类型的内容可以考虑使用Environment.getExternalStoragePublicDirectory(String type)函数该函数可以返回特定类型的目录目前支持如下类型 DIRECTORY_ALARMS //警报的铃声 DIRECTORY_DCIM //相机拍摄的图片和视频保存的位置 DIRECTORY_DOWNLOADS //下载文件保存的位置 DIRECTORY_MOVIES //电影保存的位置 比如 通过google play下载的电影 DIRECTORY_MUSIC //音乐保存的位置 DIRECTORY_NOTIFICATIONS //通知音保存的位置 DIRECTORY_PICTURES //下载的图片保存的位置 DIRECTORY_PODCASTS //用于保存podcast(博客)的音频文件 DIRECTORY_RINGTONES //保存铃声的位置 如果您的应用需要下载以上类型的文件则可以放到上面对应的目录中去来帮助用户查找比如最常用的就是下载文件了。如果您开发了一个浏览器在下载文件的时候把文件下载到Download目录则方便用户以后查找该文件当然如果你希望用户需要通过启动您的程序来查看他们下载的文件您也可以不这么做 ^_^。 在使用这些目录保存文件的时候需要注意一点其他程序也有可能在使用这些目录在保存文件前注意判断下文件是否已经存在不要覆盖了用户之前的数据。 Android4.1之后Android增加了多存储卡的支持一般手机会存在内置存储卡和外置存储卡也可能有多个外置存储卡。如何获取存储卡路径呢 特别是各种android设备的存储器路径是不一样的比如T卡路径可能是/mnt/sdcard、/mnt/extsd、/mnt/external_sd 或者/mnt/sdcard2。有时内置存储器的路径也可能是/mnt/sdcard而host usb存储器的路径也是各种各样的。 下面方法是通过反射调用StorageManager的隐藏接口getVolumePaths()实现获取存储器列表。 [java] package ckl.storage.list; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import android.app.Activity; import android.os.storage.StorageManager; public class StorageList { private Activity mActivity; private StorageManager mStorageManager; private Method mMethodGetPaths; public StorageList(Activity activity) { mActivity activity; if (mActivity ! null) { mStorageManager (StorageManager)mActivity .getSystemService(Activity.STORAGE_SERVICE); try { mMethodGetPaths mStorageManager.getClass() .getMethod(getVolumePaths); } catch (NoSuchMethodException e) { e.printStackTrace(); } } } public String[] getVolumePaths() { String[] paths null; try { paths (String[]) mMethodGetPaths.invoke(mStorageManager); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return paths; } } 在android2.3中判断内置SD卡是否挂载 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { //为true的话内置sd卡存在 } 判断外置SD卡是否挂载 if(Environment.getStorageState(Environment.STORAGE_PATH_SD2).equals(Environment.MEDIA_MOUNTED)) { //为true的话外置sd卡存在 } 顺带描述怎么取得sdcard的空间大小 File sdcardDir Environment.getExternalStorageDirectory(); StatFs sf new StatFs(sdcardDir.getPath()); //sdcardDir.getPath())值为/mnt/sdcard想取外置sd卡大小的话直接代入/mnt/sdcard2 long blockSize sf.getBlockSize(); //总大小 long blockCount sf.getBlockCount(); long availCount sf.getAvailableBlocks(); //有效大小 转载于:https://my.oschina.net/u/1244156/blog/371897