Android вызывает систему, чтобы делать фотографии и альбомы

1. Позвоните в систему, чтобы сделать снимки

Сначала вам нужно подать заявку на разрешение камеры

<uses-permission android:name="android.permission.CAMERA" />
частное логическое значение realTakePhoto() {
    пытаться {
      
            Файл imageFile = createTempImageFile();
            Uri imageUri;

            если (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                imageUri = FileProvider.getUriForFile(this, Constants.FILE_PROVIDER, imageFile);
            } еще {
                imageUri = Uri.fromFile(imageFile);
            }

            Файл takePhotoOutputFile = imageFile;
            Uri takePhotoOutputUri = imageUri;

            Намерение намерение = новое намерение (MediaStore.ACTION_IMAGE_CAPTURE);
            намерение.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            намерение.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
            startActivityForResult (намерение, REQUEST_CODE_TAKE_PHOTO);
        
   
    } поймать (Исключение e) {
        e.printStackTrace();
        вернуть ложь;
    }
}

статический файл createTempImageFile() выдает IOException {
    File destFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
    папка назначения.mkdirs();
    Строка dateTimeString = FileUtil.getNowDateTimeString();
    File imageFile = File.createTempFile(dateTimeString + "-", ".png", destFolder);
    вернуть файл изображения;
}

2. Вызвать системный альбом

Намерение намерение = новое намерение (Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
намерение.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "изображение/*");
startActivityForResult (намерение, REQUEST_CODE_PICK_IMAGE);
случай REQUEST_CODE_PICK_IMAGE: {
    если (resultCode == RESULT_OK) {
       
        Uri takePhotoOutputUri = data.getData();
        
    }
    перерыв;
}

3. Вставьте системное локальное видео и аудио

public void pickVideo() {
    Намерение намерения = новое намерение (Intent.ACTION_GET_CONTENT);
    намерение.setType("видео/*");
    startActivityForResult (намерение, REQUEST_CODE_PICK_VIDEO);
}

public void pickAudio () {
    Намерение намерения = новое намерение (Intent.ACTION_GET_CONTENT);
    намерение.setType("аудио/*");
    startActivityForResult (намерение, REQUEST_CODE_PICK_AUDIO);
}

Guess you like

Origin blog.csdn.net/chongchi_wxcc/article/details/127059410