0

다른 애플리케이션의 공유 의도에서 가져온 디렉토리의 URI가 있습니다. 이것에서 FileDescriptor를 만들고 InputStream을 열 수 있습니다. 하지만 디렉터리인지 확인하고 디렉터리 인 경우 파일을 가져올 수 있습니까? 감사합니다.디렉토리의 FileDescriptor에서 파일 가져 오기

답변

0

은 내가 "디렉토리의 REST URL"이보다 더 다른 응용 프로그램의 공유 의도

"디렉토리의 콘텐츠 URI"같은 것은 없다에서 디렉토리의 컨텐츠 URI를 보유하고 있습니다. 어떤 경우

, 우리는 Uri (예컨대, ContactsContract.Contacts.CONTENT_URI하는 UriACTION_OPEN_DOCUMENT_TREE 통해 검색) 콘텐츠의 집합을 나타내는 프로토콜을 가질 수있다. 표준 Android에는 ACTION_SEND을 통해 전달되는 '디렉토리의 콘텐츠 URI'에 대한 프로토콜이 없습니다. 내가

아마도 FileDescriptor에 오픈의 InputStream을 생성 할 수 있습니다이에서

. 이는 실제로 Uri이 무엇을 나타내는가에 전적으로 달려 있습니다.

하지만 디렉토리인지 확인하고 디렉토리라면 파일을 가져올 수 있습니까?

일반적으로 할 수 없습니다.

Uri 문서 공급자에 의해 백업 할 일이, 그리고 Uri 콘텐츠의 나무를 표현하기 위해 발생하면 DocumentFile.fromTreeUri()File의 API에 가까운 그 나무의 문서를 나열하게됩니다.

그렇지 않은 경우 Uri의 MIME 유형을 살펴 보시기 바랍니다. MIME 유형이 vnd.android.cursor.dir/으로 시작하는 경우 이어야하며 query() 일 수 있습니다. 그러나 어떤 열에 대한 규칙은 없습니다. MIME 유형이 다른 경우 콘텐츠가 무엇이고 어떻게 사용할 수 있는지에 대한 규칙이 없습니다.

특정 앱의 경우 앱 개발자에게 문의하여 "이봐, 나 한테 Uri을 보내면 어떻게 사용할 수 있습니까?"라고 물어보십시오.

TL : Uri 번을 ACTION_SEND 번으로 입력하면 Uri은 콘텐츠가 아닌 항목을 가리키며 전송 앱에는 버그가 있습니다.

관련 문제