2016-11-01 6 views
0

'pdfButton'을 클릭 할 때 pdf 파일 (Android 휴대 전화의 다운로드 폴더에서 사용 가능)을 열고 싶습니다. 조치를 수행하는 동안 아무 것도 발생하지 않으며 기록 된 오류 또는 pdf 파일이 표시됩니다. 어떤 사람이 도와 주실 수 있습니까? 당신이 당신의 디버거를 사용하여 코드를 단계별로, 또는 더 많은 로깅 문을 넣으면PDF 파일이 Android에서 열리지 않습니다.

package com.mycompany.myfirstglapp; 
import android.app.Activity; 
import android.content.ActivityNotFoundException; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.os.Environment; 
import android.util.Log; 
import android.view.SurfaceView; 
import android.webkit.WebView; 
import android.widget.Toast; 
import java.io.File; 

/** 
* Created by admin on 1/11/2016. 
*/ 

public class PdfActivity extends Activity { 
    private SurfaceView surface; 
    Button pdfButton; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_pdf); 
     surface = (SurfaceView) findViewById(R.id.pdfSurface); 
     pdfButton = (Button) findViewById(R.id.pdfView); 

     pdfButton .setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 
        // On click will call the showPdf method to display the pdf file in sd card or downloads 

        showPdf(view); 
       } 
      }); 



    } 


    public void showPdf(View view) { 

     // The pdf file [LawsofthegamewebEN_Neutral.pdf] is avaialble in Android > Downloads folder. 

     File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/LawsofthegamewebEN_Neutral.pdf"); 

     if (file.exists()) { 
      Uri path = Uri.fromFile(file); 
      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setDataAndType(path, "application/pdf"); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

      try { 
       startActivity(intent); 
      } 
      catch (ActivityNotFoundException e) { 
       Toast.makeText(PdfActivity.this, 
         "No Application Available to View PDF", 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 

    } 



} 

답변

1

, 나는 당신이 그 file.exists() 반환 false를 찾을 것을 생각한다. 그리고, 그 순간에는 아무 것도하지 않습니다.

난 당신의 코드를 찾고되지 않은 (안드로이드 폰에서 다운로드 폴더에 있습니다) PDF 파일

을 열고 싶습니다. 교체 :

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ "/LawsofthegamewebEN_Neutral.pdf"); 

로 :

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "LawsofthegamewebEN_Neutral.pdf"); 

또한 file.exists() 전화 당신이 READ_EXTERNAL_STORAGE 권한을 보유 할 필요가 있음을 의미 있습니다.

+0

결과를 게시하려고합니다. – soccerway

+0

문제가 해결되었습니다. :) – soccerway

관련 문제