package com.parttime.receivers;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
import com.quark.db.CityUpdator;
import com.quark.utils.Logger;
import java.io.FileNotFoundException;
/**
* 下载管理器监听器
* Created by wyw on 2015/8/8.
*/
public class DownloadManagerReceiver extends BroadcastReceiver {
private static final String TAG = "DownloadManagerReceiver";
public static long REQUEST_CITY;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
Logger.w(TAG, "[onReceive]download complete");
DownloadManager manager = (DownloadManager)context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query query = new DownloadManager.Query();
long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Logger.w(TAG, "[onReceive]download complete, id=" + id);
query.setFilterById(id);
Cursor c = manager.query(query);
if(c.moveToFirst()) {
//获取文件下载路径
String filename = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME));
Logger.w(TAG, "[onReceive]filename=" + filename);
//如果文件名不为空,说明已经存在了
if(filename != null){
if (REQUEST_CITY == id) {
// 城市DB下载成功
new CityUpdator().saveVersion(filename);
} else {
// 其他下载任务
// TODO
}
}
}
}
}
}