您的位置:首页 > 其它

2015.5.9安卓笔记之sd卡和settings应用

2015-05-18 18:51 66 查看
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卡和手机内存大小:

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: