从Android应用程序下载的文件在下载目录中不可见

时间:2012-08-30 19:52:46

标签: android download

我正在开发一个应用程序,其中我从远程服务器下载pdf文件。我通过应用程序成功下载手机上的PDF文件。我面临的问题是下载的文件在Galaxy Nexus的Downloads目录中不可见。当我使用文件管理器应用程序时,我可以看到那里的文件,它打开真的很好。

我尝试在我的代码中使用以下选项,但它们似乎都没有解决我的问题(这两个选项都成功下载文件并在文件管理器中可见):

outFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);

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

有人可以帮我一些线索吗?任何提示或线索都会有很大的帮助。

1 个答案:

答案 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));