Wing的小站

  • 首页
  • IT新闻
  • 技术文章
  • 生活随笔
  • 休闲娱乐
  • 个人作品
  • 留言板
  • 关于博主
JavaFX,Unity3D,Android,IOS,技术教程,生活随笔
  1. 首页
  2. 技术文章
  3. 正文

android 7.0无法获取DownloadManager下载进度

2018年2月5日 6367点热度 0人点赞 0条评论

虽然以前做过几年Android开发,并且一直都陆陆续续有接Android App的项目,但由于Android的发展很迅速,版本更新很快,所以很多涉及到新版本的内容暂时都不了解。

例如一个简单的DownloadManager进度的获取,我在自己手上的几个手机上都能正常获取,但在Android 7.0上获取不了。

查了一下才知道Android 7.0上已经废弃了COLUMN_LOCAL_FILENAME字段,需要使用COLUMN_LOCAL_URI字段。

代码如下所示:


int fileName = 0;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
   //android 7.0以后使用COLUMN_LOCAL_URI字段
   fileName = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI);
}else {
   fileName = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
}
int fileUri = cursor.getColumnIndex(DownloadManager.COLUMN_URI);
String fn = cursor.getString(fileName);
String fu = cursor.getString(fileUri);

int totalSizeBytesIndex = cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
int bytesDownloadSoFarIndex = cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
// 下载的文件总大小
int totalSizeBytes = cursor.getInt(totalSizeBytesIndex);
// 截止目前已经下载的文件总大小
int bytesDownloadSoFar = cursor.getInt(bytesDownloadSoFarIndex);

这样就能正确获取到DownloadManager的下载进度了。

标签: Android
最后更新:2018年2月5日

wing1314

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2023 Wing的小站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备17006951号-1

42011102000591