【发布时间】:2012-03-24 12:41:36
【问题描述】:
所以我的应用中有这些按钮,一旦按下,我想从应用中打开 .PDF 文件。
我已将文件存储在 /res/raw 目录中。我们称它们为 file1.PDF、file2.PDF 等。
public void onClick(View v) {
switch (v.getId()) {
case R.id.file1:
Log.i(TAG, "Button one pressed");
openPDF(Uri.parse("android:resource://test.pdf.files/raw/res/file1.PDF"));
break;
}}
以上是我的 onClick 代码。下面是openPDF函数的代码。
public void openPDF(Uri url)
{
File file = new File(url.toString());
Log.i(TAG, url.toString());
if (file.exists())
{
Log.i(TAG, "File exists");
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
try
{
getApplicationContext().startActivity(intent);
}
catch (ActivityNotFoundException e)
{
Log.e(TAG,"Activity not found exception");
}
}else{
Log.i(TAG,"404: File not found!");
}
}
我的问题如下,我永远无法通过 if (file.exists()) 检查。我试过让文件文件同时接受 Uri、URI 和字符串,我也或多或少尝试了文件路径的每个变体,比如“res/raw/file1.PDF”、“raw/file.PDF”、“test .pdf.files/raw/res/file1.PDF”。但在任何这些情况下,我都找不到我想打开的文件,谁能明白为什么这不起作用?
我已经尝试解决这个问题好几个小时了,但我似乎无法解决这个问题。
【问题讨论】:
标签: android string file pdf uri