最近在写一个小APP,就是调用系统相机拍照,然后保存在本地相册,代码没有显示bug,但是在调试时出现了拍照后闪退的问题,我的测试机是小米2S,MIUI 7系统,android5.0.X的,拍照的照片能保存在本地,但是在拍照后点击确定后软件就闪退了,这是我的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.button1);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 调用系统相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
// 取当前时间为照片名
String name = DateFormat.format("yyyyMMdd_hhmmss",
Calendar.getInstance(Locale.CHINA))
+ ".jpg";
Log.d("onactivity", "mPictureFile:" + name);
picPath = getPhotopath() + name;
// 通过文件创建一个uri中
Uri imageUri = Uri.fromFile(new File(picPath));
// 保存uri对应的照片于指定路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, OPEN_RESULT2);
}
});
}
/**
* 获取原图片存储路径
*
* @return
*/
@SuppressLint("SimpleDateFormat")
private String getPhotopath() {
// 照片全路径
String fileName = "";
// 文件夹路径
String pathUrl = Environment.getExternalStorageDirectory() + "/DCIM/Camera/";
File file = new File(pathUrl);
file.mkdirs();// 创建文件夹
fileName = pathUrl + fileName;
return fileName;
}