2017-12-26 8 views
0

콘텐츠 태그로 인해 uri가 경로로 변환되는 데 문제가 있습니다. 그래서 안드로이드 저장 장치에서 파일 형식을 선택하려고하고 파일을 선택할 수 있지만 데이터를 가져 와서 문자열 경로로 변환하려고하면 내 응용 프로그램이 손상됩니다. 나는 주위를 검토 ​​한 결과 일부 콘텐츠 제공 업체와 콘텐츠 리졸버를 사용하는 말을 content : // uri를 파일 경로로 변환하십시오.

String path = data.getData().getPath(); 

같은 URI를 변환하는

내 코드 보이지만, 나는 그들을 사용하는 방법을 모르겠어요. 어떤 도움이라도 대단히 감사 할 것입니다.

s3 버킷에 표시/업로드하십시오. 표시하는 것을 의미 할 때, 사진이나 비디오로 보여 주거나 오디오 파일이라면 PDF와 같은 다른 파일과 함께 재생할 수 있기를 원합니다.

+0

String로? 왜 그 길을 필요로합니까? – LordRaydenMK

+0

s3 버켓에 표시/업로드하십시오. 표시하는 것을 의미 할 때, 사진이나 비디오로 보여 주거나 오디오 파일이라면 PDF와 같은 다른 파일과 함께 재생할 수 있기를 원합니다. – k3j123

답변

0

이 방법은 반환 Path이 파일로 무엇을하려고

private String getPath(Uri uri) { 

      String[] projection = { MediaStore.Images.Media.DATA }; 
      Cursor cursor = getContentResolver().query(uri, projection, null, null,null); 

      int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
      cursor.moveToFirst(); 

      return cursor.getString(column_index); 
     } 
+0

위의 코드를 사용하면 런타임 예외가 발생합니다. java.lang.RuntimeException : 결과가 ResultInfo {who = null, request = 3, result = -1, data = intent {dat = content : //com.android. providers.media.documents/document/image : 206 flg = 0x43}} – k3j123

+0

당신이 일하는 API 버전은 Uri for SD입니까? –

+0

MinSdk는 21이고 TargetSdk는 26입니다. 지금은 로컬 저장소에 대한 uri이지만 두 가지 옵션 모두를 원합니다. – k3j123

관련 문제