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);
}
|