我有一个用例,
我开始使用android下载管理器下载文件,并在中间关掉手机.当我再次重新启动时,下载继续并完成.我通过提供下载引用ID获得了状态.但是我想知道使用该引用ID 10天后的状态.
所以我的问题是直到android下载管理器将通过下载参考ID给出下载状态?
我查看了文档并通过堆栈进行了流程,但无法找到答案.有人帮助我.
我正在使用DownloadManager该类以编程方式下载文件.一切正常,但我不能让下载完成通知持续.下载完成后立即消失.这是我的代码:
Request rqtRequest = new Request(Uri.parse(((URI) vewView.getTag()).toString()));
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
rqtRequest.setShowRunningNotification(true);
} else {
rqtRequest.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
((DownloadManager) getSystemService(DOWNLOAD_SERVICE)).enqueue(rqtRequest);
Run Code Online (Sandbox Code Playgroud)
我在网上看到了一些与此相关的问题,但我找不到解决方案.
android android-notifications android-notification-bar android-download-manager
我有一个ListView附加ArrayAdapter.当用户单击下载按钮时,ListView下载开始使用DownloadManager.
我想要做的是使用进度条跟踪下载进度(放置在项目布局中).怎么能实现这一目标?
Pocket Cast的方式是我所追求的:
注意:我知道如何使用它DownloadManager,它是即时更新进度条很棘手.
android android-listview android-progressbar android-download-manager
我正在开发一个应用程序,我正在处理的一个功能是下载一些二进制文件.其中一些非常大(超过几兆字节).只要文件大小小于2 GB,下载就可以正常完成.
我卡在一个3.2GB的文件上,因为我获得了进度更新(我正在汇集DownloadManager以获取进度更新),但是当下载完成时,该文件不存在于目标文件路径上.询问DownloadManager下载ID,我得到STATUS_FAILED并推理ERROR_UNKNOWN- 一个人们希望的最喜欢的错误细节!
奇怪的是,这出现在大多数设备上,但对于某些设备(如Samsung SG 4 Active OS 4.2.2和LG Nexus 5 OS 4.4.2),它似乎没有出现.
做了一些额外的调查,我发现这似乎是Android DownloadManager实现中的一个错误.似乎Android实现将下载计数存储为int,但当该计数超过时Integer.MAX_VALUE,下载结束为失败.
我想DownloadManager用前台服务替换用法,但我不会放弃....
你们是否面对这个问题,如果是这样,你是如何解决这个问题的?是否有任何解决方法DownloadManager在4.2.2之前使用,所以我可以下载每个文件超过2.1 GB?
我的应用程序在很大程度上依赖于android DownloadManager组件来下载大小为3-10兆字节的文件.
在扩大规模(达到数百万次下载)时,整体情况很明显:
由于ERROR_HTTP_DATA_ERROR ,所有下载中约有50%失败.
我从谷歌分析中获取此信息
根据文档,此错误代码代表:
在HTTP级别发生错误接收或处理数据时COLUMN_REASON的值.
我发现这个文档不是很有用.
那里有很多http错误.
以及下载过程中的网络断开情况怎么样?它是否也在ERROR_HTTP_DATA_ERROR失败所有下载的管理器重试尝试后触发错误?
如果有人能帮我理解,那就太好了:
DownloadManager更多关于确切的http错误的信息?ERROR_HTTP_DATA_ERROR下载管理器可以解决哪些最常见的情况?另一点值得一提:虽然这个错误累积 - 用户连接到WIFI网络(我设置下载管理器只能通过wifi下载)
请不要建议我根本不使用下载管理器.我知道这个选项,优点和缺点.我将此选项保存为最后的手段.
我无法从"下载文件夹"中打开任何文件.
我可以下载一个文件并保存在下载文件夹中:
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription(descricao);
request.setTitle(titulo);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, nome);
enq = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)
在此之后,我的文件保存在目录文件夹中:Android >>内部共享存储>>下载.***我看到这条路径在ubuntu中手动打开设备的高清.由于图像显示路径. Android HD由ubuntu文件夹 - 查看路径
我尝试用这个打开这个文件:
downloadManager = (DownloadManager)getContext().getSystemService(DOWNLOAD_SERVICE);
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);
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(enq);
Cursor c = downloadManager.query(query);
if(c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
if(DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
String uriString = …Run Code Online (Sandbox Code Playgroud) directory android download android-download-manager android-fileprovider
我希望在下载时实现这一点,它可以暂停,由用户停止.如何使用DownloadManager实现这一目标?
我正在使用下载管理器,当我使用时
setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, "example.ext");
Run Code Online (Sandbox Code Playgroud)
文件下载到Android/data/com.example.app/files/Download文件夹.
当我尝试
setDestinationInExternalPublicDir("/folder", "example.ext");
Run Code Online (Sandbox Code Playgroud)
我明白了:
IllegalStateException: Cannot create directory mnt/sdcard/folder.我也设置了WRITE_EXTERNAL_STORAGE权限.
我究竟做错了什么?
我正在使用arrayadapter作为我的listview,我想在其中使用DownloadManager.但是数组适配器不知道这一行:
DownloadManager download =(DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Run Code Online (Sandbox Code Playgroud)
那么我怎么能使用这个我的适配器类,当用户触摸图像下载开始
我的适配器类:
public class MyAdapter extends ArrayAdapter<String>{
private final Context context;
private final String[] values;
Context b;
public MyAdapter(Context context, String[] values) {
super(context, R.layout.item, values);
this.context = context;
this.values = values;
b= (Context) context;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rootview = inflater.inflate(R.layout.item, parent, false);
TextView tv1 = (TextView)rootview.findViewById(R.id.txt_name);
TextView tv2 = (TextView)rootview.findViewById(R.id.txt_numer);
ImageView img = (ImageView) rootview.findViewById(R.id.imageView1);
MyDatabase MyDatabase = …Run Code Online (Sandbox Code Playgroud) 我正在使用Android DownloadManager下载大型zip文件.我有listview显示所有zip文件的列表,用户可以点击项目开始下载.一次只能下载一个项目.当其他下载正在进行时,当新列表项开始下载时,我从队列中删除以前的下载ID.一切都很好.但有时我在LG g2设备OS 5.0.2上获得了ERROR_FILE_ERROR.这是代码:
Uri uri = Uri.parse(path);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setVisibleInDownloadsUi(false);
String localStorageBasePath = FileUtils.zipDirectory(context).getAbsolutePath() + File.separator + fileName;
Uri localStorageBasePathUri = Uri.fromFile(new File(localStorageBasePath));
request.setDestinationUri(localStorageBasePathUri);
Long downloadId = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)
它在其他设备上工作正常,包括nexus 5,samsung s3,note2,huawei等.当我开始下载文件时,它立即停止/失败,原因是DownloadManager.ERROR_FILE_ERROR.我试图删除/清理外部存储目录,确保它不是ERROR_INSUFFICIENT_SPACE错误等但它不起作用.有帮助吗?