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