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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐