调用系统相机的方法如下:
private void onTakeCamera(){
String path = fileHandler.getCameraPath()+"SM_"+System.currentTimeMillis()+".jpg";
tempFile= new File(path);
if(tempFile != null){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));
startActivityForResult(intent, RESULT_CAMERA);
}else{
showToast("照相机初始化失败");
}
}
如此,然后在onActivityResult方法中直接操作tempFile。
private void insertToMediaStore(File sourceFile){
ContentValues newValues = new ContentValues(6);
String title = sourceFile.getName();
newValues.put(MediaStore.Images.Media.TITLE,title);
newValues.put(MediaStore.Images.Media.DISPLAY_NAME,
sourceFile.getName());
newValues.put(MediaStore.Images.Media.DATA, sourceFile.getPath());
newValues.put(MediaStore.Images.Media.DATE_MODIFIED,
System.currentTimeMillis() / 1000);
newValues.put(MediaStore.Images.Media.SIZE, sourceFile.length());
newValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
this.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValues);
}
这里用到了ContentResolver,MediaStore,ContentValues 。
这是关于四大组件之一的内容,慢慢再来解释。