2017-09-12 3 views
-1

주어진 URI로 파일의 경로를 가져올 수 없습니다.Uri로 파일 경로 가져 오기

나는 EditText에서 읽는 경로에 따라 비디오를 재생하는 비디오 응용 프로그램이 있습니다.

나는 ACTION_GET_CONTENT를 사용하여 내장 파일 탐색기를 열 수있는 찾아보기 단추를 만들었습니다.

파일 탐색기에서 클릭하는 비디오가 무엇이든지간에 경로가 자동으로 내 EditText로 설정되기를 바랍니다.

임 내 onActivityResult를

public Boolean onActivityResult(int requestcode, int resultCode, Intent data){ 
    if(requestCode == RECEIVE_DATA){ 
    Uri uriEnd = data.getData(); 
    //here I am unsure of how to get the Path with the given Uri 
    //I am using SDK Build 24 Nougat 
    } 
    } 

내가 uriEnd.getPath를 호출하면()를 호출하는 부분에서 손실; 나는 이상한 길을 얻는다.

나는이 질문을 여러 번 물었고 응답을 살펴 봤지만 주어진 경로와 제안조차도 정확히 맞지 않는다.

+0

이 라이브러리를 추천 해 주시겠습니까? https://github.com/Angads25/android-filepicker 나는 그것을 사용하고 내 파일 문제를 해결했습니다. – cutiko

답변

1

주어진 URI로 파일의 경로를 가져올 수 없습니다.

Uri은 (는) 파일이 아닙니다.

나는 ACTION_GET_CONTENT를 사용하여 내장 파일 탐색기를 열 수있는 찾아보기 단추를 만들었습니다.

ACTION_GET_CONTENT에는 "파일 탐색기"가 필요하지 않습니다.

uriEnd.getPath(); 나는 Uri의 계획이 file 경우에만 의미있는 Uri에 이상한 경로

getPath()를 얻을. 귀하의 Uri의 구성표는 대체로 content입니다. 경로는 사용자와 사용자에게 의미가 없습니다. 사용자에게 보여줄 가치는 거의 없으며 편집하려는 결과가 EditText에 넣는 것이 더 적은 가치가 있습니다 (편집 결과가 아무 것도 가리 키지 않을 수 있기 때문에).

따라서 사용자에게 ACTION_GET_CONTENTUri을 표시하지 않고 다른 UI를 제안하는 것이 좋습니다.

+0

그래서 기본적으로 파일 탐색기에 내장 된 탐색 버튼을 열려고합니다. 나는 사용자가 선택한 파일의 경로를 얻을 수있는 방법에 대해 머리를 감싸는 것을 제외하고는 모든 것을 할 수 있습니다. 만약 내가 그것을하는 방식이 올바르지 않다면 올바른 방법이 무엇인지 알려주세요. 이것은 단지 가장 직접적인 접근처럼 보였습니다. –

+0

@AlejandroSoto : "내장 된 파일 탐색기를 여는 탐색 버튼을 얻으려고합니다."- "파일 탐색기 내장"이 없습니다. 가장 가까운 것은 Storage Access Framework UI이며 로컬 파일 (Google 드라이브, 네트워크 파일 서버 등)이 아닌 것을 탐구합니다. "사용자가 파일을 선택하지 않아서 내가 선택한 파일의 경로를 얻을 수있는 방법에 대해 머리를 감싸는 것을 제외하고는 모든 것을 할 수 있습니다. – CommonsWare

+0

@AlejandroSoto : 사용자를 파일 시스템의 로컬 파일로 제한하려면 [라이브러리 사용] (https://android-arsenal.com/tag/35?sort=created)을 사용하여 자신의 "파일 탐색기" 스타일 UI를 앱에 추가합니다. – CommonsWare

관련 문제