- /** 拍照的方法 */
- public void takePicture(Activity activity, int requestCode) {
- Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- takePictureIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- takePictureIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- if (takePictureIntent.resolveActivity(activity.getPackageManager()) != null) {
- if (Utils.existSDCard())
- takeImageFile = new File(Environment.getExternalStorageDirectory(), "/DCIM/camera/");
- else takeImageFile = Environment.getDataDirectory();
- takeImageFile = createFile(takeImageFile, "IMG_", ".jpg");
- if (takeImageFile != null) {
- // 默认情况下,即不需要指定intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
- // 照相机有自己默认的存储路径,拍摄的照片将返回一个缩略图。如果想访问原始图片,
- // 可以通过dat extra能够得到原始图片位置。即,如果指定了目标uri,data就没有数据,
- // 如果没有指定uri,则data就返回有数据!
- ContentValues contentValues = new ContentValues(1);
- contentValues.put(MediaStore.Images.Media.DATA, takeImageFile.getAbsolutePath());
- Uri uri = activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);
- takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
- }
- }
- activity.startActivityForResult(takePictureIntent, requestCode);
- }
- //该片段来自于http://www.codesnippet.cn/detail/1302201715220.html
来源: http://www.codesnippet.cn/detail/1302201715220.html