1
如何使用Dropbox API for Android(Java)获取媒体文件及其详细信息?我已经通过了documentation的FileMetadata
,但我找不到获取文件类型(如音乐,视频,照片,文本等),文件的URL和缩略图等文件详细信息的方法。Android版Dropbox api v2:如何获取媒体文件的详细信息?
这是我的文件夹和文件列表Asyntask:
//login
DbxClientV2 client = DropboxClient.getClient(accessToken);
// Get files and folder metadata from root directory
String path = "";
TreeMap<String, Metadata> children = new TreeMap<>();
try {
try {
result = client.files().listFolder(path);
arrayList = new ArrayList<>();
//arrayList.add("/");
while (true) {
int i = 0;
for (Metadata md : result.getEntries()) {
if (md instanceof DeletedMetadata) {
children.remove(md.getPathLower());
} else {
String fileOrFolder = md.getPathLower();
children.put(fileOrFolder, md);
//if (!fileOrFolder.contains("."))//is a file
arrayList.add(fileOrFolder);
if (md instanceof FileMetadata) {
FileMetadata file = (FileMetadata) md;
//I need something like file.mineType, file.url, file.thumbnail
file.getParentSharedFolderId();
file.getName();
file.getPathLower();
file.getPathDisplay();
file.getClientModified();
file.getServerModified();
file.getSize();//in bytes
MediaInfo mInfo = file.getMediaInfo();//Additional information if the file is a photo or video, null if not present
MediaInfo.Tag tag;
if (mInfo != null) {
tag = mInfo.tag();}
}
}
i++;
}
if (!result.getHasMore()) break;
try {
result = client.files().listFolderContinue(result.getCursor());//what is this for ?
} catch (ListFolderContinueErrorException ex) {
ex.printStackTrace();
}
}
} catch (ListFolderErrorException ex) {
ex.printStackTrace();
}
} catch (DbxException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
非常感谢!有没有一个文件的URL方法,而不是'listSharedLinks'?它应该等同于API v1中的'api.media(entry.path,true).url' ...我需要将媒体网址流式传输到电视,它就像'https://dl.dropboxusercontent.com/ 1/view/b5c1234gu6dwk5f/mango.jpg' –
v1的'media'等价物就是['getTemporaryLink'](https://dropbox.github.io/dropbox-sdk-java/api-docs/v2 .0.x/COM/Dropbox的/核心/ V2 /文件/ DbxUserFilesRequests.html#getTemporaryLink-java.lang.String-)。 – Greg
谢谢!从2.0.1升级到最新的2.0.6 API后,我发现'GetTemporaryLinkResult'类 –