获取sdcard目录时,统一有该类提供,以便兼容4.2的sdcard目录
注:至于通过Environment.getExternalStorageDirectory()获取的目录不能写入的问题,原因还不清楚,如果你知道,请告知,谢谢
注:以上是个人观察所得,难免有错误,如知晓,请告知
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//2013.05.10修正,关于目录/storage/emulated/legacy/目录的问题
因为google在4.2中考虑多用户的问题,对每个用户(user)来说,看各自的文件夹可以,但对于数据文件夹的处理就稍微麻烦了,所以调整了数据的挂载结构,如使用fuse技术/dev/fuse 会被挂载到/storage/emulated/0 目录,为了兼容以前,同时挂载到 /storage/emulated/legacy (故名思议,传统的),还建立三个软连接 /storage/sdcard0 ,/sdcard,/mnt/sdcard ,都指向 /storage/emulated/legacy/,(链接参见:),但是就可能造成获取文件目录中的文件(如image)时,会出现相同的图片(本来上传1张,但出现了2张==)
将上面的类的判断修改如下
publicclassCommonData{
privatestaticStringCD_S_SdcardPath="";
privatestaticStringCD_S_SdcardPathAbsolute="";
publicstaticStringgetSdcardPath(){
if(TextUtils.isEmpty(CD_S_SdcardPath))
CD_S_SdcardPath=Environment.getExternalStorageDirectory().getPath();
CD_S_SdcardPath=checkAndReplaceEmulatedPath(CD_S_SdcardPath);
returnCD_S_SdcardPath;
}
publicstaticStringgetAbsoluteSdcardPath(){
if(TextUtils.isEmpty(CD_S_SdcardPathAbsolute))
CD_S_SdcardPathAbsolute=Environment.getExternalStorageDirectory().getAbsolutePath();
CD_S_SdcardPathAbsolute=checkAndReplaceEmulatedPath(CD_S_SdcardPathAbsolute);
returnCD_S_SdcardPathAbsolute;
}
publicstaticFilegetSdcardPathFile(){
returnnewFile(getSdcardPath());
}
publicstaticStringcheckAndReplaceEmulatedPath(StringstrSrc){
<spanstyle="color:#ff0000;">Patternp=Pattern.compile("/?storage/emulated/\\d{1,2}");
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-30432-3.html
也不敢再找事羞辱我们
看到你们都在骂
小日本真正的经验