Android 手机拍照sd卡不存在的问题

1.今天老板说用户反应拍照时没有提示sd卡提示sd不存在,我们的项目里就是把照片放入sd的,如果sd卡不存在就提示的。哪位大神帮解决一下呗(存内置存储卡但我不会这种呀,网上搜又没有的),
2.项目的登录号使用SharedPreference写入本地的,默认是在data—data—包名—share目录下的 是以.xml保存的,是清除不了的,但是不知道用户怎么把它清楚了,老板让保存在一个指定目录下的.txt里,不会呀
哪位大神给指条明路,小弟感激不尽……

private boolean ExistSDCard() {

if (android.os.Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED)) {

return true;

} else

return false;

}

楼上的代码已经解决SD卡的状态!

要想把数据保存在自定义的目录中,可以利用IO流操作!

public class CreateFiles {

    String filenameTemp =Environment.getRootDirectory()+ "/hhaudio" + ".txt";    

    //创建文件夹及文件    
    public void CreateText() throws IOException {    
        File file = new File(filenameTemp);    
        if (!file.exists()) {    
            try {    
                //按照指定的路径创建文件夹    
                file.mkdirs();    
            } catch (Exception e) {    
                // TODO: handle exception    
            }    
        }    
        File dir = new File(filenameTemp);    
        if (!dir.exists()) {    
              try {    
                  //在指定的文件夹中创建文件    
                  dir.createNewFile();    
            } catch (Exception e) {    
            }    
        }    

    }    

    //向已创建的文件中写入数据    
    public void print(String str) {    
        FileWriter fw = null;    
        BufferedWriter bw = null;    
        String datetime = "";    
        try {    
            SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd" + " "    
                    + "hh:mm:ss");    
            datetime = tempDate.format(new java.util.Date()).toString();    
            fw = new FileWriter(filenameTemp, true);//    
            // 创建FileWriter对象,用来写入字符流    
            bw = new BufferedWriter(fw); // 将缓冲对文件的输出    
            String myreadline = datetime + "[]" + str;    

            bw.write(myreadline + "\n"); // 写入文件    
            bw.newLine();    
            bw.flush(); // 刷新该流的缓冲    
            bw.close();    
            fw.close();    
        } catch (IOException e) {    
            // TODO Auto-generated catch block    
            e.printStackTrace();    
            try {    
                bw.close();    
                fw.close();    
            } catch (IOException e1) {    
                // TODO Auto-generated catch block    
            }    
        }    
    }    
}

/////记得导包,,,,,,

检测sd卡是否存在

 private boolean ExistSDCard() {  
  if (android.os.Environment.getExternalStorageState().equals(  
    android.os.Environment.MEDIA_MOUNTED)) {  
   return true;  
  } else  
   return false;  
 }  

http://blog.csdn.net/fantianheyey/article/details/8823392