Android 获取DownloadManager当前完成的下载路径

Android 获取DownloadManager当前完成的下载路径,android,download,Android,Download,我的问题是,我需要返回完成的下载文件,以便在下载完成后执行一些命令 如果我这样做 doDownload("www.google.com","google1.html"); doDownload("www.google.com","google2.html"); Log.d(“ainfo”,uriString)仍然保留返回第二次下载的名称 output of LogCat: D/ainfo(27946): file:///storage/emulated/0/test/google2.html

我的问题是,我需要返回完成的下载文件,以便在下载完成后执行一些命令

如果我这样做

doDownload("www.google.com","google1.html");
doDownload("www.google.com","google2.html");
Log.d(“ainfo”,uriString)仍然保留返回第二次下载的名称

output of LogCat:

D/ainfo(27946): file:///storage/emulated/0/test/google2.html
D/ainfo(27946): file:///storage/emulated/0/test/google2.html
为什么谷歌1.html和谷歌2.html不呢?这样,当文件按顺序完成时,我无法对其进行操作:(

下载代码:

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()) {
                //      while(i < c.getColumnCount()) {
            //      Log.d("Ainfo", c.getColumnName(i) + "---" + c.getString(i));
                //  i++;

                int columnIndex = c
                        .getColumnIndex(DownloadManager.COLUMN_STATUS);
                if (DownloadManager.STATUS_SUCCESSFUL == c
                    .getInt(columnIndex)) {
                     String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));

                     Log.d("ainfo", uriString);

                    //AlertDialog.Builder builder = new AlertDialog.Builder(main);
                    //builder.setTitle("Download(s) Efetuado(s)");


                    //StringBuilder sb = new StringBuilder();
                    //sb.append("/n");
                    //builder.setMessage(sb.toString());
                    //alerta = builder.create();
                    //alerta.show();


                }
            }
        }
    }
};


public void doDownload(String link, String filename) {
    this.dm = (DownloadManager) main.getSystemService(main.DOWNLOAD_SERVICE);


     File direct = new File(Environment.getExternalStorageDirectory()
                + subDirHTMLs);

        if (!direct.exists()) {
            direct.mkdirs();
        }

        File arquivoexistente = new File(Environment.getExternalStorageDirectory()
                + subDirHTMLs + filename);

       if(!arquivoexistente.exists()) {
    Request request = new Request(
            Uri.parse(link));
    enqueue = dm.enqueue(request.setAllowedNetworkTypes(
            DownloadManager.Request.NETWORK_WIFI
            | DownloadManager.Request.NETWORK_MOBILE)
    .setAllowedOverRoaming(false).setTitle(filename)
    .setDescription("Something useful. No, really.")
    .setDestinationInExternalPublicDir(subDirHTMLs, filename));
       } else {
           arquivoexistente.delete();
           doDownload(link, filename);
      }

}
BroadcastReceiver=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文、意图){
String action=intent.getAction();
if(DownloadManager.ACTION\u DOWNLOAD\u COMPLETE.equals(ACTION)){
long downloadId=intent.getLongExtra(
DownloadManager.EXTRA_DOWNLOAD_ID,0);
查询=新查询();
query.setFilterById(排队);
游标c=dm.query(查询);
if(c.moveToFirst()){
//而(i
解决了在检查成功后添加此问题

 if(downloadId == c.getInt(0)) {
                            Log.d("ainfo", c.getString(c.getColumnIndex("local_uri")));

                     }
现在我可以进入下一步了