2013-01-15 73 views
1

我想知道任何人都可以帮我解决我遇到的问题。我查看了同一问题的许多帖子,但仍无法解决此问题。我创建了一个PDF文档。我已将创建的PDF文件放入我的res/raw文件夹(我也尝试将其放置在assets文件夹中),并试图在我的应用程序中打开它。当我点击按钮时,它会打开对话框,我可以选择使用adobe reader,amazon kindle或polaris office来完成操作。但是当我尝试打开PDF时,出现错误,提示“文档无法打开,因为它不是有效的PDF文档”。无法在Android应用程序中打开pdf文档

以下是我用来尝试打开PDF的代码,有没有人有任何想法,为什么这不起作用?

String fileName = "android.resource://" + getPackageName() + "/" + R.raw.user_manual_v1_0_0;    
File file = new File(fileName); 

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

startActivity(intent); 

回答

4

它不会工作,因为很少,如果有的话,PDF查看器被设置为从资源打开PDF文件,并没有可以直接从资产看。

将文件复制到文件系统会更好。如果您将其复制到外部存储,您可以打开一个PDF查看器。如果您将其复制到内部存储 - 默认情况下为您的应用专用 - 您可以创建一个ContentProvider将PDF提供给查看器。 This sample application演示了后一种方法。

0

请务必不要忘记您的应用访问外部文件的权限。将这两行放在清单中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
相关问题