第一步:设置权限(WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
第二步:在xml布局中编辑按钮
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:onClick="click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="向sd卡写文件" />
</RelativeLayout>
第三步:在java中编辑逻辑
/**
* 写sd卡一定记得添加权限
*
* @author Administrator
*
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* 模拟向sd卡写一个视频文件.
*
* @param view
*/
public void click(View view) {
// 检查sd卡的状态
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File sdFile = Environment.getExternalStorageDirectory();// 外部存储空间
long sdsize = sdFile.getFreeSpace();
if (sdsize >5* 1024 * 1024) {
File file = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis()+"hlw.3gp");
try {
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1024];
for (int i = 0; i < 5*1024; i++) {
fos.write(buffer);
}
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}else{
Toast.makeText(this, "sd卡空间不足", 0).show();
}
} else {
Toast.makeText(this, "sd卡被拔出或者是不可用", 0).show();
}
}
}