2012-02-24 55 views
0

因此,在我的Eclipse安卓项目中,我有一个我想要打开的pdf文件,我查找了android开发人员页面上的标准地址,并且提出了这个指针:在Android平台上访问应用程序的项目文件

File file = new File("Android/data/com.alex.testing.app/res/raw/jazz.pdf"); 

其中jazz.pdf位于res->raw在我的Eclipse项目, 和com.alex.testing是我的包名。

不过,当我尝试if(file.exists()),函数返回false(在它进入一个else我已经设置了显示错误消息仿真器)...

很抱歉的新手问题,但我真的很坚持这个:(。

回答

0

好了,从目前的应用程序访问的资源,你可以使用像,

Uri path = Uri.parse("android.resource://<you package>/raw/<your_file.pdf>"); 

OR

Uri path = Uri.parse("android.resource://" + getPackageName() + "/" R.raw.<your_file.pdf>); 

但是我怀疑你是否试图在你的应用程序中使用这个pdf文件,然后确定,但是如果你想使用任何第三方应用程序查看这个文件,那么我认为你不能这样做。

由于外部应用程序无法访问应用程序的包资源文件。

那么更好的方法是把这个文件放在/asset目录中,然后将其复制到任何公共访问区域,然后从该路径查看该文件。

+0

谢谢,我试过[此](http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard),我试图打开该文件与Adobe Reader应用程序,但它给了我一个错误,“该文件无法打开。”另外,当我检查fileviewer/sdcard /时,那里什么都没有......我做错了什么? : - ?目前我使用的是Yoram Cohen的代码。 – user1123530 2012-03-06 22:57:10

1

放在资产文件夹中的文件,并选择从那里

文件现在使用Context.getAssets().open("jazz.pdf")并传递所产生的InputStream成PDF解析器库

0
//如果您

存储在SD卡的位置会

"data/data/com.alex.testing/res/raw/jazz.pdf" 

//你看从原文件夹资源直通下面的代码

InputStream inputStream = getResources().openRawResource(R.raw.jazz); 
byte[] reader = new byte[inputStream.available()]; 
相关问题