现在正在使用 MultipleFileUpload 方法。我怎样才能获得进度条。请帮助我。
MultipleFileUpload upload = tm.uploadFileList(
"backetname", s3_path, myDir_temp, collection_file, metadataProvider);
现在正在使用 MultipleFileUpload 方法。我怎样才能获得进度条。请帮助我。
MultipleFileUpload upload = tm.uploadFileList(
"backetname", s3_path, myDir_temp, collection_file, metadataProvider);
使用适用于 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
}
});