0

ダウンロード マネージャー リクエストを機能させようとしていますが、奇妙なエラーが発生します。コードは次のとおりです。

package com.vsnetworks.vswebkads;

import java.io.File;
import android.net.Uri;
import android.os.Bundle;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.DownloadManager;
import android.app.DownloadManager.Request;
import android.content.Context;
import android.util.Log;

@TargetApi(9)
public class MainActivity extends Activity {

static final String DL_STR = "downloads";

@Override                                                                            
public void onCreate(Bundle savedInstanceState) {

    Log.v("VERS TEST", "1.1");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    File externalDir = getExternalFilesDir(null);
    externalDir.mkdirs();

    File dlDir = new File(externalDir, MainActivity.DL_STR);
    if (!dlDir.exists())
        dlDir.mkdirs();

    DownloadManager dlManager = (DownloadManager) getApplicationContext().getSystemService(Context.DOWNLOAD_SERVICE);
    Uri uri = Uri.parse("https://www.google.com/images/srpr/logo3w.png");
    //uri = Uri.parse("http://download.thinkbroadband.com/20MB.zip");
    DownloadManager.Request request = new Request(uri);
    request.setAllowedNetworkTypes(Request.NETWORK_WIFI);
    request.setDestinationInExternalFilesDir(getApplicationContext(), null, "downloads/test.png");
    request.setTitle("test");
    dlManager.enqueue(request);
}
}

興味深いことに、2 番目の uri = 行のコメントを外すと、ダウンロードはうまく機能し、ファイルはディレクトリに保存されます。問題を引き起こしているのは、SSL経由でダウンロードしようとしているからだと思います。ただし、これらの 2 つのスレッドによると、ssl はダウンロード マネージャーでサポートされています (最初のスレッドのコメントで)。

Android DownloadManager と SSL (https)

android2.3 ダウンロードマネージャー

また、2 番目のリンクのように、ダウンロード マネージャーが http でのみ動作するというエラーも表示されないようです。これが私が見るエラーです:

01-22 17:23:42.385: I/DownloadManager(1061): Initiating request for download 4068
01-22 17:23:42.905: I/DownloadManager(1061): Initiating request for download 4068
01-22 17:23:42.905: W/DownloadManager(1061): Aborting request for download 4068: Trying to resume a download that can't be resumed
01-22 17:23:42.905: D/DownloadManager(1061): setupDestinationFile() unable to resume download, deleting /storage/sdcard0/Android/data/com.vsnetworks.vswebkads/files/downloads/test.png
01-22 17:23:42.915: D/DownloadManager(1061): cleanupDestination() deleting /storage/sdcard0/Android/data/com.vsnetworks.vswebkads/files/downloads/test.png

今日、タブレットのアンドロイドを更新したところ、バージョン 4.1.1 になっているので、バージョンの問題ではないと思います。

では、https を使用してダウンロード マネージャー リクエストを実行できますか? もしそうなら、これは正しい方法ですか?

4

2 に答える 2

0

この場合、エラーはデバイスに関連しているようです。テストを nexus 10 に切り替えたところ、コードは機能し、このエラーは表示されませんでした。

于 2013-01-31T16:15:32.417 に答える