File.exists()总是在Android 2.3中返回false

时间:2013-11-29 11:54:24

标签: android android-intent android-manifest android-file

这是一个艰难的一天,试图解决这个问题。我正在尝试使用Intent打开下载的PDF。 PDF将保存到默认下载文件夹中。

下载后不久,我检查文件是否存在。

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName.trim());

if(file.exists()) {
  Uri uri = Uri.fromFile(d);
  intent.setDataAndType(uri, "application/pdf");
  startActivity(intent);
}

文件位置为/mnt/sdcard/Download/fileName.pdf

但是,file.exists()总是返回false,即使它存在于SD卡上。我检查了互联网上的很多帖子。有人回答了为他们工作的 Intent.FLAG_ACTIVITY_CLEAR_TASK 。我正在使用launchMode =“singleTop”

以下是清单上的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我无法找到当前社区帖子的解决方案,这就是我在这里的原因。

我错过了什么?谁能告诉我什么行为不寻常?

解决

经过数小时的投资,我找到了解决方法。打开文件后,我将其重定向到下载文件夹。

Intent intent = new Intent();
intent.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS);
startActivity(intent);   

终于解决了它!!!

感谢所有的投入!

0 个答案:

没有答案