记录一个浏览器无法下载的原因,
当点击下载后,进入到DownloadUI app里面看,发现apk没有下载一直是queued状态。
最后解决:
packages/providers/DownloadProvider/src/com/android/providers/downloads/Helpers.java
public static boolean scheduleJob(Context context, DownloadInfo info) {
......
final JobInfo.Builder builder = new JobInfo.Builder(jobId,
new ComponentName(context, DownloadJobService.class));
// When this download will show a notification, run with a higher
// priority, since it's effectively a foreground service
if (info.isVisible()) {
builder.setPriority(JobInfo.PRIORITY_FOREGROUND_APP);
builder.setFlags(JobInfo.FLAG_WILL_BE_FOREGROUND);
}
// We might have a backoff constraint due to errors
final long latency = info.getMinimumLatency();
Log.v(Constants.TAG, "---builder--latency: "+latency);
if (latency > 0) {
builder.setMinimumLatency(latency);
}
// We always require a network, but the type of network might be further
// restricted based on download request or user override
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY/*info.getRequiredNetworkType(info.mTotalBytes)*/);
builder.setOverrideDeadline(10000);//增加延时,不管怎样,到时间后都下载
//注释下面的两个设置
/*if ((info.mFlags & FLAG_REQUIRES_CHARGING) != 0) {//可能导致无法下载
builder.setRequiresCharging(false);
}
if ((info.mFlags & FLAG_REQUIRES_DEVICE_IDLE) != 0) {//可能导致无法下载
builder.setRequiresDeviceIdle(true);
}*/
.....
}