这是一个艰难的一天,试图解决这个问题。我正在尝试使用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);
终于解决了它!!!
感谢所有的投入!