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")));
}
现在我可以进入下一步了