2

DownloadManager を使用して、作成中のダウンロードをキューに入れていますが、具体的にモバイル/4G 接続を使用しようとすると、この問題が発生します。Android 2.3.4 の携帯電話を使用しています。私のコードは 2.3.3 API を使用しています。

次のコマンドを実行しています (強制的に接続に 4G/3G を使用させたい)

request.setAllowedNetworkTypes(Request.NETWORK_MOBILE);

ただし、ダウンロードを試みるたびに、ダウンロードは DownloadManager のリストに配置されますが、ステータスは「進行中」のままで、一番上にファイル名と「ダウンロードにはネットワークが必要です」というエラーが表示されます。

さらに調査し、デバイスを接続して logcat でログを確認すると、ダウンロードしようとすると次のエラーが表示されます。

ダウンロード 92 の要求を中止しています: 現在のネットワーク タイプを使用しないようにダウンロードが要求されました

次の権限があります。

android.permission.WRITE_OWNER_DATA
android.permission.READ_OWNER_DATA
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.INTERNET    
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE 
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_STATE  

それが何であるかについてのアイデアはありますか?まだ許可がありませんか? ネットワーク接続のみの使用を指定するために制御する必要がある別の設定はありますか?

編集:私はこれを真新しいGalaxyタブレットで試しましたが、これはこのデバイスを使用して気づいた動作です.wifiがオンで接続されている場合、NETWORK_MOBILEを使用するように指定するとダウンロードに失敗します. Wi-Fiがオフまたは接続されていない場合、4G接続を使用しても問題ありません. これはデバイスによって行われているセキュリティ機能だと思いますが、上書きできますか?

4

2 に答える 2

1

このエラーは、データ接続がない場合に発生します(wifiに接続しているかどうかは関係ありません)。NETWORK_MOBILEを単独で指定することはできますが、データ接続が現在機能していないときにダウンロードを実行しようとすると、「ダウンロードにはネットワークが必要です」というエラーがスローされます。

データ接続を再度取得するための私のアドバイスは、接続を再度取得するまで歩き回ることです。4G LTE4つのバーを示す上部のバーアイコンが白ではなくに変わるため、DroidBionic電話でデータ接続がいつ確立されたかがわかります。

于 2012-01-17T22:19:52.717 に答える
1

ダウンロードマネージャーをどのように設定しているかはわかりませんが、パスで使用した方法は次のとおりです。

private long enqueue;
private DownloadManager dm;

public void onClick(View view) {
    dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
    Request request = new Request(
            Uri.parse("File URL"));
    enqueue = dm.enqueue(request);

}

public void showDownload(View view) {
    Intent i = new Intent();
    i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS);
    startActivity(i);
}
于 2011-12-21T20:16:30.293 に答える