下面是打开Android系统自带拍照系统的程序代码:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); //拍照意图
File photo = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/laolisb.jpg");
imageUri = Uri.fromFile(photo);
String state = Environment.getExternalStorageState();
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); // 这样就将文件的存储方式和uri指定到了Camera应用中
startActivityForResult(intent, PHOTO_CAPTURE);
看看Android内部都做了哪些工作:
private void setupCaptureParams() {
Bundle myExtras = getIntent().getExtras();
if (myExtras != null) {
mSaveUri = (Uri) myExtras.getParcelable(MediaStore.EXTRA_OUTPUT);
mCropValue = myExtras.getString("crop");
}
}
----------
if (mSaveUri != null) { //如果发现有路径,就将拍照后的照片保存到该路径下
OutputStream outputStream = null;
try {
outputStream = mContentResolver.openOutputStream(mSaveUri);
outputStream.write(data);
outputStream.close();
setResult(RESULT_OK);
finish();
} catch (IOException ex) {
// ignore exception
} finally {
Util.closeSilently(outputStream);
}
} else { //如果没有发现路径,就将拍照后的照片数据保存在data字段下
Bitmap bitmap = createCaptureBitmap(data);
setResult(RESULT_OK,
new Intent("inline-data").putExtra("data", bitmap));
finish();
}
FR:海涛高软(QQ技术交流群:386476712)