Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android下载列表器_Java_Android - Fatal编程技术网

Java Android下载列表器

Java Android下载列表器,java,android,Java,Android,有没有办法确定下载是否成功。 我正在使用以下代码从其他手机下载文件,但有时其他用户超出了wifi范围。我想知道源代码超出了范围,所以当时无法下载 有什么可以帮助我的倾听者类型的东西吗 Uri uri=Uri.parse(downLoadLink); Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) .mkdirs(); lastDownload = mgr.enqueue(n

有没有办法确定下载是否成功。 我正在使用以下代码从其他手机下载文件,但有时其他用户超出了wifi范围。我想知道源代码超出了范围,所以当时无法下载

有什么可以帮助我的倾听者类型的东西吗

Uri uri=Uri.parse(downLoadLink);

Environment
  .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
  .mkdirs();

lastDownload = mgr.enqueue(new DownloadManager.Request(uri)
  .setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
  .setAllowedOverRoaming(false)
  .setTitle(aryToReturn.get(position).name)
  .setDescription("File Downloding...")
  .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,aryToReturn.get(position).name));

我使用以下代码完成了这项工作

  private class downloadTask extends AsyncTask<String, Void, String> {
  ProgressDialog dialog = new ProgressDialog(webServices.this);
  @Override
  protected String doInBackground(String... params) {

      //Uri uri=Uri.parse("http://commonsware.com/misc/test.mp4"); 
      Uri uri=Uri.parse(downLoadLink);

        Environment
          .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
          .mkdirs();

        lastDownload=
          mgr.enqueue(new DownloadManager.Request(uri)
                      .setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |
                                              DownloadManager.Request.NETWORK_MOBILE)
                      .setAllowedOverRoaming(false)
                      .setTitle(downloadFileName)
                      .setDescription("File Downloding...")
                      .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
                              downloadFileName));
                   // Log.d("-->", String.valueOf(lastDownload));
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "Executed";
  }      

  @Override
  protected void onPostExecute(String result) {



     dialog.dismiss();
    Cursor c=mgr.query(new DownloadManager.Query().setFilterById(lastDownload));

    if (c==null) {
      //Toast.makeText(this, "Download not found!", Toast.LENGTH_LONG).show();
    }
    else {
      c.moveToFirst();
      Log.e("yes", statusMessage(c));
     // Toast.makeText(this, statusMessage(c), Toast.LENGTH_LONG).show();
    }

  }

  @Override
  protected void onPreExecute() {
     dialog.setMessage("Please wait...");
        dialog.setCancelable(false);
        dialog.show();
     }

  @Override
  protected void onProgressUpdate(Void... values) {
  }


  }


private String statusMessage(Cursor c) {
String msg="???";

switch(c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
  case DownloadManager.STATUS_FAILED:
    msg="Download failed!";
    break;

  case DownloadManager.STATUS_PAUSED:
    msg="Download paused!";
    break;

  case DownloadManager.STATUS_PENDING:
    msg="Download pending!";
    break;

  case DownloadManager.STATUS_RUNNING:
    msg="Download in progress!";
    break;

  case DownloadManager.STATUS_SUCCESSFUL:
    msg="Download complete!";
    break;

  default:
    msg="Download is nowhere in sight";
    break;
}

return(msg);
私有类下载任务扩展了异步任务{
ProgressDialog=新建ProgressDialog(webServices.this);
@凌驾
受保护的字符串doInBackground(字符串…参数){
//Uri=Uri.parse(“http://commonsware.com/misc/test.mp4"); 
Uri=Uri.parse(下载链接);
环境
.getExternalStoragePublicDirectory(Environment.DIRECTORY\u下载)
.mkdirs();
最后下载=
经理排队(新的DownloadManager.Request(uri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK\u WIFI|
DownloadManager.Request.NETWORK(移动)
.setAllowedOverRoaming(假)
.setTitle(下载文件名)
.setDescription(“文件下载…”)
.setDestinationNexternalPublicDir(Environment.DIRECTORY_下载,
下载文件名);
//Log.d(“-->”,String.valueOf(lastDownload));
试一试{
睡眠(5000);
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回“已执行”;
}      
@凌驾
受保护的void onPostExecute(字符串结果){
dialog.dismise();
游标c=mgr.query(new DownloadManager.query().setFilterById(lastDownload));
如果(c==null){
//Toast.makeText(这是“未找到下载!”,Toast.LENGTH_LONG.show();
}
否则{
c、 moveToFirst();
Log.e(“是”,状态消息(c));
//Toast.makeText(this,statusMessage(c),Toast.LENGTH_LONG.show();
}
}
@凌驾
受保护的void onPreExecute(){
setMessage(“请稍候…”);
对话框。可设置可取消(false);
dialog.show();
}
@凌驾
受保护的void onProgressUpdate(void…值){
}
}
私有字符串状态消息(光标c){
字符串msg=“?”;
开关(c.getInt(c.getColumnIndex(DownloadManager.COLUMN_状态))){
案例下载管理器.STATUS_失败:
msg=“下载失败!”;
打破
案例下载管理器。状态\u已暂停:
msg=“下载暂停!”;
打破
案例下载管理器.STATUS_挂起:
msg=“下载挂起!”;
打破
案例下载管理器.STATUS\u正在运行:
msg=“正在下载!”;
打破
案例下载管理器.STATUS\u成功:
msg=“下载完成!”;
打破
违约:
msg=“看不到下载”;
打破
}
返回(msg);

}

您可以使用下载管理器或。嗯,好的,我会试试:-)谢谢回复@Sam。