26

私のアプリでは、いくつかのファイルをダウンロードできます。ダウンロードにはAndroidDownloadManagerクラスを使用しました。ダウンロードが完了すると、ファイルがダウンロードされたというメッセージが表示されます。問題は、同時に2、3、または4回のダウンロードが発生する可能性があることです。私のBroadcastReceiverコードは次のようになります:

receiver_complete = new BroadcastReceiver(){
         @Override
          public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
                if (action.equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE) ){
                    Toast.makeText(MainActivity.this, MainActivity.this.getString(R.string.download_finished, "Here should be the name", Toast.LENGTH_SHORT).show();
                }
         }
     };

完成したダウンロードの現在のファイル名を取得するにはどうすればよいですか?

どうもありがとうございます。

4

5 に答える 5

21

ブロック内にこのようなものを入れたいと思いますifYOUR_DMDownloadManager インスタンスに置き換えます。

Bundle extras = intent.getExtras();
DownloadManager.Query q = new DownloadManager.Query();
q.setFilterById(extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID));
Cursor c = YOUR_DM.query(q);

if (c.moveToFirst()) {
    int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
    if (status == DownloadManager.STATUS_SUCCESSFUL) {
        // process download
        title = c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE));
        // get other required data by changing the constant passed to getColumnIndex
    }
}
于 2012-11-10T13:03:28.297 に答える
1

あなたが探しているのはDownloadManager.COLUMN_TITLE

Android ドキュメントへのリンクは次のとおりです: http://developer.android.com/reference/android/app/DownloadManager.html#COLUMN_TITLE

そして、これはタイトルを取得するだけでなく、それ以上のことを説明するチュートリアルです. URL から画像をダウンロードし、アプリケーションで表示するためのものです。全体的に言えば、非常に便利だと思います。

http://wptrafficanalyzer.in/blog/downloading-an-image-from-an-http-url-using-downloadmanager-and-displaying-in-imageview-by-dynamically-registered-broadcastreceiver/

于 2012-11-10T12:32:49.460 に答える
-1

uこのコードを試してファイル名を取得してください

DownloadManager.COLUMN_LOCAL_FILENAME

よくわかりません

于 2012-11-10T12:25:09.967 に答える