Android- android.net.Uri 객체를 java.net.URI 객체로 어떻게 변환 할 수 있습니까?
FileInputStream
사용자가 사진 갤러리에서 선택한 이미지에 개체 를 가져 오려고합니다. 이것은 URI
반환 된 안드로이드입니다android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
content://media/external/images/media/3
이 객체에서 Java URI 객체를 생성하려고 할 때 IllegalArgumentException
예외 설명이있는 예상 파일 구성표 URI : content : // media / external / images / media / 3 반면 Android URI는 구성표를 콘텐츠 로 표시 합니다.
업데이트 : 원래 질문에 대한 해결책을 찾지 못했습니다. 그러나 사진 갤러리에서 이미지의 바이트 스트림을 원한다면이 코드가 그렇게 할 것입니다.
Bitmap bitmap = Media.getBitmap(getContentResolver(), imageUri);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
ByteArrayInputStream fileInputStream = new ByteArrayInputStream(bytes.toByteArray());
Java 기반 생성자와 함께 toString
android 메서드를 사용할 수 있습니다 .Uri
String
URI
android.net.Uri auri = new android.net.Uri(what ever);
java.net.URI juri = new java.net.URI(auri.toString());
콘텐츠 URI에서 InputStream을 여는 올바른 방법을 찾았습니다.
InputStream fileInputStream=yourContext.getContentResolver().openInputStream(uri);
그게 다야!
원래 질문에 대한 해결책이 있습니다 (Uri를 URI로 변환).
실제 파일 경로 가져 오기 (다음 코드보기 : 미디어 저장소에서 URI에서 파일 이름 및 경로 가져 오기 )
실제 경로와 생성자를 사용하여 URI를 가져옵니다. URI (String uri)
자세한 내용이 필요하면 여기를 참조하십시오.
ACTION_VIDEO_CAPTURE에서 인 텐트를 사용하여 녹화 된 동영상을 삭제하는 방법은 무엇입니까?
나는 jgilrincon의 대답에 투표했습니다. 낮은 평판으로 인해 댓글을 달 수 없습니다. 여기에 몇 가지 추가 정보가 있습니다. Apache Cordova 프로젝트에서 FileHelper.java 를 사용할 수 있습니다. 미디어 저장소 (및 앱 자산 폴더)를 고려하여 Uri 문자열에서 파일을 처리하는 데 필요한 기능이 있습니다. )
특히이 메서드는 Uri에서 InputStream을 제공합니다.
public static InputStream getInputStreamFromUriString(String uriString, Activity cordova)
문자열 구성이 작동하지 않기 때문에 직접 구성 해 보셨습니까?
android.net.URI auri = new android.net.URI(what ever);
java.net.URI juri = new java.net.URI(auri.getSchema(),
auri.getSchemaSpecificPart(),
auri.getFragment());
Android URI 클래스에서 유효한 데이터를 가져 오는지 다시 확인할 수도 있습니다. 내 다른 답변에 나열된 문서는 오류 검사가 거의없는 방법에 대해 설명합니다. 사실 오류가 있으면 클래스는 어쨌든 쓰레기를 내뿜고 예외를 던지지 않습니다. 유효성 검사를 수행하는 Java 클래스가 예외를 던지는 이유가 될 수 있습니다.
'developer tip' 카테고리의 다른 글
덧셈 할당 + = 식의 동작 (0) | 2020.12.12 |
---|---|
C ++에서 함수를 호출 할 때 얼마나 많은 오버 헤드가 있습니까? (0) | 2020.12.12 |
컨텍스트가없는 프로그래밍 언어는 무엇입니까? (0) | 2020.12.12 |
Vim에서 swp 파일의 폴더 경로를 변경하는 방법 (0) | 2020.12.12 |
docker exec로 2 개의 명령을 실행하는 방법 (0) | 2020.12.11 |