3

现在正在使用 MultipleFileUpload 方法。我怎样才能获得进度条。请帮助我。

 MultipleFileUpload upload = tm.uploadFileList(
            "backetname", s3_path, myDir_temp, collection_file, metadataProvider);
4

1 回答 1

0

使用适用于 Android 的 AWS 开发工具包并检查 AWS 文档是否相同:https ://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transferutility.html

使用 Transfer Utility,download() 和 upload() 方法返回一个 TransferObserver 对象。该对象允许访问:

状态(现在指定为枚举)到目前为止传输的总字节数要传输的总字节数(用于轻松计算进度条)可用于跟踪不同传输的唯一 ID 给定传输 ID,此 TransferObserver 对象可以是从应用程序的任何位置检索,包括应用程序是否被终止。它还允许您创建一个 TransferListener,它将在状态或进度更改以及发生错误时进行更新。

要获取下载或上传的进度,请在 TransferObserver 上调用 setTransferListener()。这需要您实现 onStateChanged、onProgressChanged 和 onError。例如:

TransferObserver transferObserver = download(MY_BUCKET, OBJECT_KEY, MY_FILE);
transferObserver.setTransferListener(new TransferListener(){

    @Override
    public void onStateChanged(int id, TransferState state) {
        // do something
    }

    @Override
    public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
        int percentage = (int) (bytesCurrent/bytesTotal * 100);
        //Display percentage transfered to user
    }

    @Override
    public void onError(int id, Exception ex) {
        // do something
    }

});
于 2017-01-11T08:51:49.330 回答