Articles of android download manager

不推荐使用DownloadManager COLUMN_LOCAL_FILENAME

在Android N上,我得到一个例外。 根据文档,这是一个已知问题,它要求我使用ContentResolver.openFileDescriptor() https://developer.android.com/reference/android/app/DownloadManager.html#COLUMN_LOCAL_FILENAME 我不知道该怎么用。 这里的ContentResolver对象在哪里可以用来获取文件名? 我从来没用过它。 所以,我将不胜感激。 08-04 11:20:59.765 7010 7290 W System.err:java.lang.SecurityException:不推荐使用COLUMN_LOCAL_FILENAME; 请改用ContentResolver.openFileDescriptor() 08-04 11:20:59.765 7010 7290 W System.err:在android.app.DownloadManager $ CursorTranslator.getString(DownloadManager.java:1499) 这是我的代码。 DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(id); Cursor cursor = downloadManager.query(query); final String downloadFilePath = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)); cursor.close(); 我尝试了downlaodManager.getFileUri,但不是我想要的。 感谢任何帮助。 谢谢

Android DownloadManager.ERROR_FILE_ERROR

可能重复 我正在使用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); 它在其他设备上工作正常,包括nexus 5,samsung s3,note2,huawei等。当我开始下载文件时,它立即停止/失败,原因是DownloadManager.ERROR_FILE_ERROR。 我试图删除/清理外部存储目录,确保它不是ERROR_INSUFFICIENT_SPACE错误等,但它不起作用。 有帮助吗?

如何在ArrayAdapter中使用DownloadManager

我正在使用arrayadapter作为我的listview,我想在其中使用DownloadManager。 但是数组适配器不知道这一行: DownloadManager download =(DownloadManager) getSystemService(DOWNLOAD_SERVICE); 那么我怎么能使用这个我的适配器类,当用户触摸图像下载开始 我的适配器类 : public class MyAdapter extends ArrayAdapter{ 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 […]

如何暂停使用DownloadManager?

我希望在下载时实现这一点,它可以暂停,由用户停止。 如何使用DownloadManager实现这一目标?

DownloadManager – 了解ERROR_HTTP_DATA_ERROR

我的应用程序在很大程度上依赖于android DownloadManager组件来下载大小为3-10兆字节的文件。 在扩大规模(达到数百万次下载)时,整体情况很明显: 由于ERROR_HTTP_DATA_ERROR ,所有下载中 约有 50%失败 。 我从谷歌分析中获取此信息 根据文档,此错误代码代表: 在HTTP级别发生错误接收或处理数据时COLUMN_REASON的值。 我发现这个文档不是很有用。 那里有很多http错误。 那下载中间的网络断开怎么办? 在失败所有下载的管理ERROR_HTTP_DATA_ERROR试尝试后,它是否也会触发ERROR_HTTP_DATA_ERROR错误? 如果有人能帮我理解,那就太好了: 有没有办法从DownloadManager获取有关确切http错误的更多信息? 下载管理器可以触发哪些最常见的情况ERROR_HTTP_DATA_ERROR ? 还有一点值得一提:虽然这个错误累积 – 用户连接到WIFI网络(我设置下载管理器只能通过wifi下载) 请不要建议我根本不使用下载管理器。 我知道这个选项,优点和缺点。 我将此选项保存为最后的手段。

未知的url内容:// downloads / my_downloads

我正在使用Download Manger下载一些多媒体文件并对其进行分类。 我也在使用Crashlytics,这是一个错误,我经常在不同的设备和Android版本上得到它。 我正在寻找你的解决方案/建议! java.lang.IllegalArgumentException: Unknown URL content://downloads/my_downloads at android.content.ContentResolver.insert(ContentResolver.java:862) at android.app.DownloadManager.enqueue(DownloadManager.java:1252) at com.myapp.LessonFragment$DownloadClickListener.onClick(SourceFile:570) at android.view.View.performClick(View.java:4262) at android.view.View$PerformClick.run(View.java:17351) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) at dalvik.system.NativeStart.main(NativeStart.java) 您可以在下面看到我的代码: private class DownloadClickListener implements View.OnClickListener { @Override public void onClick(View view) { // Check if download manager available […]

如何更新ListView项中的进度条

我有一个附加到ArrayAdapter的ListView 。 当用户单击ListView项目的下载按钮时,将使用DownloadManager开始DownloadManager 。 我想要做的是使用进度条跟踪下载进度(放置在项目布局中)。 怎么能实现这一目标? Pocket Cast的方式是我所追求的: Pocket Cast exampel http://www.mrcrab.net/images/thumb_big/9982-Pocket_Casts_Apk_v4.3.2_Android-0.jpg 注意:我知道如何使用DownloadManager ,它是即时更新进度条很棘手。

直到android下载管理器将通过下载参考ID提供下载状态?

我有一个用例, 我开始使用android下载管理器下载文件,并在中间关掉手机。 当我再次重新启动时,下载继续并完成。 我通过提供下载引用ID获得了状态。 但是我想知道使用该引用ID 10天后的状态。 所以我的问题是直到android下载管理器将通过下载参考ID给出下载状态? 我查看了文档并通过堆栈进行了流程,但无法find答案。 有人帮助我。

DownloadManager下载超过2.1 GB的文件

我正在开发一个应用程序,我正在处理的一个function是下载一些二进制文件。 其中一些非常大(超过几兆字节)。 只要文件大小小于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用法,但我不会放弃…. 你们是否面对这个问题,如果是这样,你是如何解决这个问题的? 是否有任何解决方法在4.2.2之前使用DownloadManager所以我可以下载每个文件超过2.1 GB?

为什么“下载完成”通知会在Gingerbread设备上消失?

我正在使用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); 我在网上看到了一些与此相关的问题,但我找不到解决方案。