我正在撰写的相机应用具有WRITE_EXTERNAL_STORAGE
和READ_EXTERNAL_STORAGE
两种权限。
我使用getExternalStorageDirectory()
方法将文件写入SD卡的主目录。我没有在模拟器上运行它。我的设备为Xperia Z3C
且Android 6.0.1
。
当我有getExternalStorageDirectory()
给出的路径为"/storage/emulated/0/".
然后将文件保存在内部存储主目录中。
private static File getOutputMediaFile(int type){
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "Flash");
Log.d("adasd", mediaStorageDir.getAbsolutePath());
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.d("MyCameraApp", "failed to create directory");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == MEDIA_TYPE_IMAGE){
mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"IMG_"+ timeStamp + ".jpg");
} else if(type == MEDIA_TYPE_VIDEO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"VID_"+ timeStamp + ".mp4");
} else {
return null;
}
return mediaFile;
}