2014-04-22 3 views
0

기기의 PDF 뷰어를 통해 내 apps 디렉토리에서 pdf 파일을 열려고합니다.Android에서 PDF 파일 열기가 작동하지 않습니다.

PackageManager m = getPackageManager(); 
String s = getPackageName(); 
       PackageInfo p; 
       try { 
        p = m.getPackageInfo(s, 0); 
        s = p.applicationInfo.dataDir; 
       } catch (NameNotFoundException e) {      
        Log.w("Error", "Error Package not found ", e);      
       } 

       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s + "\\Document.pdf")); 
intent.setType("application/pdf");     
PackageManager pm = getPackageManager();      
Intent crC = Intent.createChooser(intent, "Open File"); startActivity(crC); 

테스트 장치에는 설치된 pdf 뷰어가 있습니다. 그럼에도 불구하고 기존의 앱으로는 해당 파일을 열 수 없다고합니다. 내가 뭔가 잘못하고 있는거야?

답변

0

다음 코드는 어떻게해야합니까?

PackageManager pm = getPackageManager();      
Intent crC = Intent.createChooser(intent, "Open File"); startActivity(crC); 

자습서를 살펴보고 여기에 모든 내용이 혼합되어 있다고 가정합니다. 그 두 줄 대신 그냥 시도하십시오

startActivity(intent); 

작동하지 않습니까?

은 단순히이의 코드를 변경 : 이것에

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s + "\\Document.pdf")); 
intent.setType("application/pdf"); 

: 사람이 여전히 관심이 있다면

+0

이 줄 PackageManager pm = getPackageManager(); 은 필요하지 않습니다. 선택기를 사용하여 파일을 열 수있는 가능한 모든 앱을 얻고 싶었습니다. – Emanuel0101

+0

내가 선택자 라인을 지울 때, 예상대로 활동 notfoundexception이 나타납니다 (의도를 다루는 활동이 없음). – Emanuel0101

+0

흠 ... mimetype이 설정되어 있다면 적어도 올바른 앱을 열어 볼 것으로 기대합니다. 인터넷에서 다운로드 한 PDF를 열 수 있습니까? – Bob

1

, 여기 내 솔루션입니다

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(s + "\\Document.pdf"), "application/pdf"); 

갑자기 일했다. :)

관련 문제