安卓开发之-调用系统相机拍照应注意要点。
(一)调用相机拍照保存至指定文件夹,intent.putExtra(file)可将拍到的照片直接保存到文件夹
但此方法不可用于拍摄视频,同样的在摄像时,如果传入路径的话,会出现画面卡死不动,而同时在传入的路径下面会有一个为空的文件,文件名是对的,但没有数据,而在回调函数onActivityResult中的data不为空,会为你传入的路径名.所以在使用Intent调用相机拍照或摄像时最好不要传入存储路径,否则在不同的机子上会出现不同的问题,按照默认的给定路径寻找文件即可。
(二)如下:拍照
Intent intent=new Intent(); // 指定开启系统相机的Action intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT); // 根据文件地址创建文件 File file=new File(FILE_PATH); // 把文件地址转换成Uri格式 Uri uri=Uri.fromFile(file); // 设置系统相机拍摄照片完成后图片文件的存放地址 intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
录像:
Intent intent = new Intent();
intent.setAction("android.media.action.VIDEO_CAPTURE");
intent.addCategory("android.intent.category.DEFAULT");
File file = new File(FILE_PATH);
if(file.exists()){
file.delete();
}
Uri uri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, 0);
}
};