user1424489
user1424489

Reputation: 63

Opening pdf in android/kindle app

I want to open a pdf from a website onto an app i'm making for the kindle and android.

I think my code is right but it can't find my file and I wasn't sure if anyone knew if I should be formatting the file different since it's technically a website....

Any input would be greatly appreciated. Here's what I have so far:

    Button OpenPDF = (Button) findViewById(R.id.button1);
    OpenPDF.setOnClickListener(new View.OnClickListener()
    { 
        public void onClick(View v) 
        {
            File pdfFile = new File("http://thisisthewebsitewithpdf.pdf"); 
            if(pdfFile.exists()) //EXCEPTION HERE. pdfFile doesn't exist!
            {
                Uri path = Uri.fromFile(pdfFile); 
                Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
                pdfIntent.setDataAndType(path, "application/pdf");
                pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                try
                {
                    startActivity(pdfIntent);
                }
                catch(ActivityNotFoundException e)
                {
                    Toast.makeText(PDFActivity.this, "No Application available to view pdf", Toast.LENGTH_LONG).show(); 
                }
            }

Upvotes: 0

Views: 1224

Answers (1)

K_Anas
K_Anas

Reputation: 31466

you can download the pdf to your sdcard and then open it using this activitty:

public class OpenPdf extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button = (Button) findViewById(R.id.OpenPdfButton);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                File file = new File("/sdcard/example.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(OpenPdf.this, 
                            "No Application Available to View PDF", 
                            Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
    }
}

Upvotes: 1

Related Questions