使用自定义属性创建文件和查询文件工作正常,但它无法在queryChildren()ResultCallback中检索自定义属性。
以下是CustomProperty定义:
public void onResult(DriveApi.MetadataBufferResult result) {
if (!result.getStatus().isSuccess()) {
showMessage("Problem while retrieving results");
return;
}
MetadataBuffer mdb = result.getMetadataBuffer();
if (mdb.getCount() > 0) {
try {
if (mdb != null) {
for (Metadata md : mdb) {
if (md == null) continue;
Log.d(TAG, "[FileMetadataCallback][onResult] md.getTitle(): " + md.getTitle() + ", md.getDriveId(): " + md.getDriveId());
Log.d(TAG, "[FileMetadataCallback][onResult] md.getTitle(): " + md.getTitle() + ", md.getResourceId(): " + md.getDriveId().getResourceId());
Map<CustomPropertyKey, String> map = md.getCustomProperties();
if (map != null) {
Log.d(TAG, "[FileMetadataCallback][onResult] file custom properties size: " + map.size());
if (map.size() > 0) {
Log.d(TAG, "[FileMetadataCallback][onResult] file hash: " + map.get(CustomPropertyKeyFileHash));
}
}
}
}
} finally {
if (mdb != null) mdb.close();
}
}
}
查询条件:
{{1}}
查询结果回调:
{{1}}
我总是得到日志“ [FileMetadataCallback] [onResult]文件自定义属性大小:0 ”。 但是,我应该能够检索“mDriveFile.getMD5()”,因为它是查询条件之一,对吗?
任何建议都表示赞赏。
答案 0 :(得分:1)
刚刚发现需要等待片刻(几分钟)才能在onCompletion回调后正确获取自定义属性。 因此,如果您在onCompletion回调后不需要立即获取自定义属性,那么这应该没有问题。
答案 1 :(得分:0)
这不是预期的。如果在本地(即在您查询的同一设备上)将自定义属性添加到文件中,则应该能够在不等待完成事件的情况下检索属性。您可以尝试在设备离线时执行此操作吗?