현재 내 파일 제공 업체에서 콘텐츠 URI를 사용하여 ACTION_IMAGE_CAPTURE
의도로 반환 된 카메라 이미지를 검색하고 있습니다. 이것은 잘 작동합니다.ACTION_VIDEO_CAPTURE에서 콘텐츠 URI 사용하기
이상한 이유로 카메라에서 비디오 파일을 검색하려고 할 때 동일한 호출이 작동하지 않습니다.
destinationFile = File.createTempFile("video", ".mp4", this.getFilesDir());
Uri uri = FileProvider.getUriForFile(this, getPackageName() + ".fileprovider", destinationFile);
Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
cameraIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
cameraIntent.setClipData(ClipData.newRawUri(null, uri));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(cameraIntent, ID);
의 DestinationFile이 비어 onActivityResult()
의 의도 수익을 것입니다
MediaStore.ACTION_VIDEO_CAPTURE
을 MediaStore.ACTION_IMAGE_CAPTURE
으로 바꾸기 만하면 예상되는 동작을 얻을 수 있습니다. 캡처 된 이미지는 destinationFile에 저장됩니다.
Nexus 기기 및 기본 Google 카메라 앱의 Android 6.0.1 재고가 발생합니다.
콘텐츠 캡처시 비디오 콘텐츠 URI가 실제로 지원되지 않습니까? 공개적으로 액세스 할 수있는 디렉토리에서 파일 URI를 사용하지 않는 것을 선호합니다.
* offtopic * 내 질문에 대한 마지막 답변 (핑거 프린트 서비스)을 삭제했습니다. 다시 시도하십시오. 캐시를 무효로 할 필요가 있습니다! 다시 받아주세요. –
Android N을 타겟팅하지 않는 한 당분간 파일 URI를 계속 사용해야합니다. 명확한 설명 주셔서 감사합니다! – limmatplatz
@limmatplatz : "해야만한다"는 강력한 용어입니다. 확실히 테스트를 위해 Google 카메라 앱이 '콘텐츠'를 올바르게 지원할 때까지 '파일'을 고수해야합니다. 그런 다음 해당 콘텐츠로 전환하고 테스트 할 수 있습니다. 그러나이 기회를 빌어 다른 카메라 앱이'content '를 제대로 처리하지 못할 때 무엇을 할 것인지 결정할 수 있습니다. 'targetSdkVersion'가'N'에이를 때까지'file'은 안전해야하며 보편적으로 지원되어야합니다. 바라건대 잠시 동안'targetSdkVersion'을 올리면 안된다. 말하자면, 10 년 정도. :-) – CommonsWare