无法通过Android Drive API获取自定义属性

时间:2015-06-02 04:56:10

标签: google-drive-android-api

使用自定义属性创建文件和查询文件工作正常,但它无法在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()”,因为它是查询条件之一,对吗?

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

刚刚发现需要等待片刻(几分钟)才能在onCompletion回调后正确获取自定义属性。 因此,如果您在onCompletion回调后不需要立即获取自定义属性,那么这应该没有问题。

答案 1 :(得分:0)

这不是预期的。如果在本地(即在您查询的同一设备上)将自定义属性添加到文件中,则应该能够在不等待完成事件的情况下检索属性。您可以尝试在设备离线时执行此操作吗?