我正在开发一个应用程序,其中我从远程服务器下载pdf文件。我通过应用程序成功下载手机上的PDF文件。我面临的问题是下载的文件在Galaxy Nexus的Downloads目录中不可见。当我使用文件管理器应用程序时,我可以看到那里的文件,它打开真的很好。
我尝试在我的代码中使用以下选项,但它们似乎都没有解决我的问题(这两个选项都成功下载文件并在文件管理器中可见):
outFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);
和
outFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName);
有人可以帮我一些线索吗?任何提示或线索都会有很大的帮助。
答案 0 :(得分:2)
我能够通过以下方式使用DownloadManager来完成它:
dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(
Uri.parse("http://"));
enqueue = dm.enqueue(request);
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
long downloadId = intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Query query = new Query();
query.setFilterById(enqueue);
Cursor c = dm.query(query);
if (c.moveToFirst()) {
int columnIndex = c
.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c
.getInt(columnIndex)) {
Toast.makeText(getApplicationContext(), "Download Complete!!!", Toast.LENGTH_LONG).show();
}
}
}
}
};
registerReceiver(receiver, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));