Android:如何打开pdf?

时间:2013-06-06 15:24:17

标签: android

我尝试打开pdf,但是当我按下按钮时,没有任何反应。 我的错误在哪里?

OnClickListener oclBt2 = new OnClickListener(){
            public void onClick(View v) {
                File file = new File("http://testserv1.p.ht/1/ksu016.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);
                startActivity(intent);   
                try {
                    startActivity(intent);
                    } 
                catch (ActivityNotFoundException e) {
                     e.printStackTrace();
                    }
                }
            }
        };

我更正了我的代码,但它不再有效:​​(当我按下按钮时,显示window(抱歉,但我的声誉不允许发布图片)

OnClickListener oclBt2 = new OnClickListener(){
            public void onClick(View v) {
                Uri path = Uri.parse("http://testserv1.p.ht/1/ksu016.pdf");
                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) {               
                mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url=http://hostforandroid.elitno.net/pdf-test.pdf" );
                setContentView(mWebView);
                }               
            }
        };

1 个答案:

答案 0 :(得分:1)

首先,File用于本地文件,而不是http网址。使用Uri.parse("http://testserv1.p.ht/1/ksu016.pdf");获取指向Uri网址的http

其次,可能没有设置为直接从HTTP URL下载的PDF查看器。为了获得更好的兼容性,您可以先安排下载PDF(使用DownloadManager或您自己的HTTP客户端代码),然后查看本地PDF文件。