在将一个文件存储到sd卡上面的时候,一般需要判断sd是否已经挂载才进行操作。
那么如何判断sd卡已经挂载呢?
我们可以使用Android的Environment类,具体使用如下:
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {//如果已经挂载 //sd卡已经挂载,可以进行读写操作了 } else { //sd未挂载,在此进行提示 }
还有一点,手机上不一定只有一个sd卡,或者手机上的sd卡名称不一定都是sdcard,因此,Android系统给我们封装了一个方法专门获取sd卡的路径。
//使用Environment的方法 String sdcardPath = Environment.getExternalStorageDirectory();
附 Android对sd卡的写操作:
package com.wuyou.saveSD; import java.io.File; import java.io.FileWriter; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.Menu; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {//如果已经挂载 //sd卡已经挂载,可以进行读写操作了 try { File file = new File(Environment.getExternalStorageDirectory(), "test2.txt"); FileWriter fileWriter = new FileWriter(file); fileWriter.write("无忧之路 - 博客园"); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } else { //sd未挂载,在此进行提示 Toast.makeText(this, "sd卡不可用,请检查!", Toast.LENGTH_SHORT).show(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }