在AndroidManifest.xml中加入访问SDCard的权限如下:
<!-- 在SDCard中创建与删除文件权限 -->
代码如下 | 复制代码 |
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> |
<!-- 往SDCard写入数据权限 -->
代码如下 | 复制代码 |
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> |
接着我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法
1: getDataDirectory() 获取到Androi中的data数据目录
2:getDownloadCacheDirectory() 获取到下载的缓存目录
3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard
4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,
android系统中对于外部设置的状态,我们比较常用的应该是 MEDIA_MOUNTED(SDcard存在并且可以进行读写) MEDIA_MOUNTED_READ_ONLY (SDcard存在,只可以进行读操作) 当然还有其他的一些状态,可以在文档中进行查找到
5:getRootDirectory() 获取到Android Root路径
6:isExternalStorageEmulated() 返回Boolean值判断外部设置是否有效
7:isExternalStorageRemovable() 返回Boolean值,判断外部设置是否可以移除
【注】上面进行红色标记的方法,我们会常用
代码如下 | 复制代码 |
<span style="color:#ff0000;">Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) |
代码中这句:我们对SDcard的状态进行判断,</span>
下面看实现SDCard进行文件读写操作的Demo:
代码如下 | 复制代码 |
package com.jiangqq.sdcard; import java.io.File; import android.app.Activity; public class SDcardActivity extends Activity { private static final String FILENAME = "temp_file.txt"; @Override private class MySetOnClickListener implements OnClickListener { @Override try { case R.id.bt2:// 使用SDcard读操作 } } } |