鸿蒙开源三方组件 -- 文件下载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"
      }
    ],

配置下载服务

    "abilities": [
      {
        "name": "com.ixuea.ohos.downloader.DownloadService",
        "label": "ohosDownloader",
        "type": "service",
        "visible": true
      }
    ]

创建DownloadManager实例

downloadManager = DownloadService.getDownloadManager(getApplicationContext());

下载一个文件

    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);

集成方式

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

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

方式二:

allprojects{
	repositories{
		mavenCentral()
	}
}
implementation ' io.github.dzsf:ohosdownloader:1.0.0’

附录1:相关资料

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

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