의 I는 사진 읽기위한 적절한의 InputStream을 얻기 위해, 이런 식으로 뭔가를 할 수있는 콘텐츠 공급자 소비자의 클라이언트 측 :콘텐츠 공급자로부터 메모리 매핑 된 InputStream을 반환 하시겠습니까?
InputStream is = getContentResolver().openInputStream(pictureUri);
그것은 좋은 API, 그리고 것이다 서버 측에서 실제를 A와 전화 콘텐츠 제공자 결과 :
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
// Open a proper ParcelFileDescriptor, most likely using openFileHelper(uri, mode)
}
그러나 URI에 매핑 된 사진이 아닌 경우는 파일 시스템에서 발견되었지만 메모리 자원으로, 또는 즉석에서 생성합니다.
매핑 된 메모리를 File
또는 InputStream
또는 다른 것으로 만들면 콘텐츠 공급자에게 반환하기 위해 임시 파일을 디스크에 저장할 필요가 없습니다.
합니다. 모든 종류의 원격 데이터를 읽기 위해'ContentResolver # openInputStream()'메소드를 일관되게 사용할 수 있기를 정말로 원합니다. 서버가 데이터를 생성/가져 오는 방법에 관계없이 서버 구현을 클라이언트에 노출시키지 않는 문제입니다. – PeyloW
@PeyloW이 해결책을 찾았습니까? 나는 해결책을 찾고있다. – Sunny
@Sunny 아무 것도 해킹되지 않습니다. 그래서 임시 파일을 저장하고 파일 설명자를 보냈습니다. – PeyloW