android调用系统拍照、相册
android调用系统拍照、相册
·
1、调用系统拍照
首先需要申请相机权限
<uses-permission android:name="android.permission.CAMERA" />
private boolean realTakePhoto() { try { File imageFile = createTempImageFile(); Uri imageUri; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { imageUri = FileProvider.getUriForFile(this, Constants.FILE_PROVIDER, imageFile); } else { imageUri = Uri.fromFile(imageFile); } File takePhotoOutputFile = imageFile; Uri takePhotoOutputUri = imageUri; Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, REQUEST_CODE_TAKE_PHOTO); } catch (Exception e) { e.printStackTrace(); return false; } }
static File createTempImageFile() throws IOException { File destFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); destFolder.mkdirs(); String dateTimeString = FileUtil.getNowDateTimeString(); File imageFile = File.createTempFile(dateTimeString + "-", ".png", destFolder); return imageFile; }
2、调用系统相册
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);
case REQUEST_CODE_PICK_IMAGE: { if (resultCode == RESULT_OK) { Uri takePhotoOutputUri = data.getData(); } break; }
3、插入系统本地视频、音频
public void pickVideo() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("video/*"); startActivityForResult(intent, REQUEST_CODE_PICK_VIDEO); }
public void pickAudio() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("audio/*"); startActivityForResult(intent, REQUEST_CODE_PICK_AUDIO); }
更多推荐
已为社区贡献9条内容
所有评论(0)