android开发打开pdf,Android打开pdf文件

我正在开发一个Android应用程序,我必须打开一些文件。

这是我使用intent的代码:public class FacturaActivity extends Activity { (...) public void downloadInvoice(View view) { File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file),"application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); } }

文件位于SD卡的根目录中,我可以手动打开它。

问题

应用程序在到达startActivity(intent)时关闭。 我认为问题出在AndroidManifest.xml文件中,但我不知道如何正确使用它。

AndroidManifest.xml中

logcat的

07-03 15:49:13.094: E/AndroidRuntime(1032): FATAL EXCEPTION: main 07-03 15:49:13.094: E/AndroidRuntime(1032): java.lang.IllegalStateException: Could not execute method of the activity (...) 07-03 15:49:13.094: E/AndroidRuntime(1032): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/201209_F2012212782.PDF typ=application/pdf flg=0x40000000 } 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Activity.startActivityForResult(Activity.java:2817) 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Activity.startActivity(Activity.java:2923)

你能帮我完成AndroidManifest吗? 或者我该如何打开该pdf?

问题是没有安装应用程序来处理打开PDF。 您应该使用Intent Chooser,如下所示:

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename); Intent target = new Intent(Intent.ACTION_VIEW); target.setDataAndType(Uri.fromFile(file),"application/pdf"); target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); Intent intent = Intent.createChooser(target, "Open File"); try { startActivity(intent); } catch (ActivityNotFoundException e) { // Instruct the user to install a PDF reader here, or something }

String dir="/Attendancesystem"; public void displaypdf() { File file = null; file = new File(Environment.getExternalStorageDirectory()+dir+ "/sample.pdf"); Toast.makeText(getApplicationContext(), file.toString() , Toast.LENGTH_LONG).show(); if(file.exists()) { Intent target = new Intent(Intent.ACTION_VIEW); target.setDataAndType(Uri.fromFile(file), "application/pdf"); target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); Intent intent = Intent.createChooser(target, "Open File"); try { startActivity(intent); } catch (ActivityNotFoundException e) { // Instruct the user to install a PDF reader here, or something } } else Toast.makeText(getApplicationContext(), "File path is incorrect." , Toast.LENGTH_LONG).show(); }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值