3

リモートサーバーからpdfファイルをダウンロードするアプリを開発中です。これまでのところ、アプリを介して携帯電話に PDF ファイルをダウンロードすることに成功しています。私が直面している問題は、ダウンロードしたファイルが Galaxy Nexus のダウンロード ディレクトリに表示されないことです。ファイルマネージャーアプリを使用すると、そこにファイルが表示され、非常にうまく開きます。

コードで次のオプションを使用してみましたが、どれも問題を解決していないようです (これらのオプションはどちらもファイルを正常にダウンロードし、ファイル マネージャーに表示されます)。

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

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

誰か手がかりを教えてくれませんか?ヒントや手がかりは非常に役立ちます。

4

1 に答える 1

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));
于 2012-09-24T16:25:07.057 に答える