鸿蒙开源三方组件 -- 文件下载ohosdownloader组件 原创 精华

wx6103af45ed62b
发布于 2021-7-30 16:05
浏览
1收藏

前言

基于安卓平台的AndroidDownloader组件(https://github.com/ixuea/AndroidDownloader)
实现了鸿蒙化迁移和重构,代码已经开源到(https://gitee.com/openneusoft/ohosdownloader)
欢迎各位下载使用并提出宝贵意见!

背景

OhosDownloader是一个开源的多线程,多任务下载框架。

组件示例效果

下载文件
鸿蒙开源三方组件 -- 文件下载ohosdownloader组件-鸿蒙开发者社区
鸿蒙开源三方组件 -- 文件下载ohosdownloader组件-鸿蒙开发者社区
下载中列表
鸿蒙开源三方组件 -- 文件下载ohosdownloader组件-鸿蒙开发者社区
下载完成列表
鸿蒙开源三方组件 -- 文件下载ohosdownloader组件-鸿蒙开发者社区

如何使用

添加网络权限

    "reqPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ],
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

配置下载服务

    "abilities": [
      {
        "name": "com.ixuea.ohos.downloader.DownloadService",
        "label": "ohosDownloader",
        "type": "service",
        "visible": true
      }
    ]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

创建DownloadManager实例

downloadManager = DownloadService.getDownloadManager(getApplicationContext());
  • 1.

下载一个文件

    String absolutePath = getContext().getExternalCacheDir().getAbsolutePath();
    String file = absolutePath + "/a.apk";
    downloadInfo = new Builder().setUrl(DEFAULT_URL).setPath(file).build();
    downloadInfo.setDownloadListener(new DownloadListener() {

        @Override
        public void onStart() {
            tv_download_info.setText("Prepare downloading");
        }

        @Override
        public void onWaited() {
            tv_download_info.setText("Waiting");
            bt_download_button.setText("Pause");
        }

        @Override
        public void onPaused() {
            bt_download_button.setText("Continue");
            tv_download_info.setText("Paused");
        }

        @Override
        public void onDownloading(long progress, long size) {
            tv_download_info
                    .setText(FileUtil.formatFileSize(progress) + "/" + FileUtil
                            .formatFileSize(size));
            bt_download_button.setText("Pause");
        }

        @Override
        public void onRemoved() {
            bt_download_button.setText("Download");
            tv_download_info.setText("");
            downloadInfo = null;
        }

        @Override
        public void onDownloadSuccess() {
            bt_download_button.setText("Delete");
            tv_download_info.setText("Download success");
        }

        @Override
        public void onDownloadFailed(DownloadException e) {
            tv_download_info.setText("Download fail:" + e.getMessage());
        }
    });
    downloadManager.download(downloadInfo);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.

集成方式

将其添加到要集成的libs文件夹内,在samples的gradle内添加如下代码。
方式一:
通过library生成har包,添加har包到libs文件夹内。
在samples的gradle内添加如下代码:

implementation fileTree(dir:'libs', include:['*.jar','*.har'])
  • 1.

方式二:

allprojects{
	repositories{
		mavenCentral()
	}
}
implementation ' io.github.dzsf:ohosdownloader:1.0.0’
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

附录1:相关资料

IDE官方下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
2
收藏 1
回复
举报
2
1


回复
    相关推荐