>  기사  >  Java  >  자산 폴더에서 PDF를 읽으려고 할 때 Android 앱에서 \"파일 경로가 유효하지 않습니다\" 오류가 발생하는 이유는 무엇입니까?

자산 폴더에서 PDF를 읽으려고 할 때 Android 앱에서 \"파일 경로가 유효하지 않습니다\" 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-28 09:48:29750검색

Why is my Android app throwing a

자산 폴더에서 PDF 파일 읽기

문제:

Android 애플리케이션에서 제공된 코드를 사용하여 자산 폴더에서 PDF 파일을 읽으려고 하면 "파일 경로가 유효하지 않습니다."라는 오류 메시지가 나타납니다.

코드:

관련 코드 섹션은 다음과 같습니다.

<code class="java">File file = new File("android.resource://com.project.datastructure/assets/abc.pdf");

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
startActivity(intent);</code>

해결 방법:

문제는 File 개체에 제공된 경로에 있습니다. 올바른 경로는 getAssets()를 사용하여 자산 폴더에서 PDF 파일을 검색해야 합니다.

<code class="java">AssetManager assetManager = getAssets();
InputStream in = assetManager.open("abc.pdf");
OutputStream out = openFileOutput("abc.pdf", Context.MODE_WORLD_READABLE);

// Copy PDF file to internal storage
copyFile(in, out);

// Create Intent and URI for file in internal storage
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + getFilesDir() + "/abc.pdf"), "application/pdf");

startActivity(intent);</code>

추가 참고 사항:

  • 추가하는 것을 잊지 마세요. 매니페스트 파일에 대한 WRITE_EXTERNAL_STORAGE 권한.
  • copyFile() 메서드는 PDF 파일을 자산 폴더에서 내부 저장소로 복사하여 인텐트에서 액세스할 수 있도록 하는 데 사용됩니다.
  • URI는 다음과 같습니다. 내부 저장소의 파일 위치를 가리키도록 Uri.parse()를 사용하여 구성됩니다.

위 내용은 자산 폴더에서 PDF를 읽으려고 할 때 Android 앱에서 \"파일 경로가 유효하지 않습니다\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.