1.默认状态下,读取sd卡不需要添加任何权限,往sd卡写入数据则需在AndroidManifest里面添加
WRITE_EXTERNAL_STORAGE
权限.
2.在应用SD卡时,最好判断SD卡是否可用: Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
3.获得sd卡所在目录: Environment.getExternalStorageDirectory();
4.掌握settings源码分析,注意两个快捷键操作:Ctrl+T:寻找方法 Ctrl+F查找
5.获得sd卡和手机内存大小:
2.在应用SD卡时,最好判断SD卡是否可用: Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
3.获得sd卡所在目录: Environment.getExternalStorageDirectory();
4.掌握settings源码分析,注意两个快捷键操作:Ctrl+T:寻找方法 Ctrl+F查找
5.获得sd卡和手机内存大小:
File path=Environment.getExternalStorageDirectory();//获得sd卡目录
StatFs stat=new StatFs(path.getPath());
long blockSize=stat.getBlockSize();//得到硬盘中每一块的大小
long totalBlocks=stat.getBlockCount();//得到总的块数
long availableBlocks=stat.getAvailableBlocks();//得到可用空间的块数
String totalStr=Formatter.formatFileSize(this, totalBlocks*blockSize);//将得到的大小格式化为多少(MB/GB/TB/PB)单位的
String availStr=Formatter.formatFileSize(this, availableBlocks*blockSize);
String tag="MainActivity";
Log.i(tag, totalStr);
Log.i(tag, availStr);
tv.setText("SD卡总内存:"+totalStr+"\n"+"SD卡可用内存:"+availStr+"\n"+getRomSpaceInfo());
}
public String getRomSpaceInfo(){
File path=Environment.getDataDirectory();//获得手机内存目录
StatFs stat=new StatFs(path.getPath());
long blockSize=stat.getBlockSize();//得到硬盘中每一块的大小
long totalBlocks=stat.getBlockCount();//得到总的块数
long availableBlocks=stat.getAvailableBlocks();//得到可用空间的块数
String totalStr=Formatter.formatFileSize(this, totalBlocks*blockSize);
String availStr=Formatter.formatFileSize(this, availableBlocks*blockSize);
return "手机内存总空间为:"+totalStr+"\n手机内存可用空间为:"+availStr;
}