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

卡克斯顿

使用自定义属性创建文件和查询文件可以正常工作,但是无法在queryChildren()ResultCallback中检索自定义属性。

这是CustomProperty定义:

/**
 * CustomPropertyKey: Uploaded file's hash code
 */
public static final CustomPropertyKey CustomPropertyKeyFileHash =
        new CustomPropertyKey("fileHash", CustomPropertyKey.PUBLIC);

查询条件:

            Query query = new Query.Builder()
                .addFilter(
                        Filters.and(
                                Filters.eq(SearchableField.MIME_TYPE, sMimeType),
                                Filters.eq(BaseDemoActivity.CustomPropertyKeyFileHash, mDriveFile.getMD5()),
                                Filters.eq(SearchableField.TRASHED, false)
                        )
                ).build();

            mDriveFile.getDriveFolder().queryChildren(mGoogleApiClient, query)
                .setResultCallback(mResultCallback);

查询结果回调:

            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();
                    }
                }
            }

我总是收到日志“ [FileMetadataCallback] [onResult]文件自定义属性大小:0 ”。但是,我应该能够检索“ mDriveFile.getMD5()”,因为它是查询条件之一,对吗?

任何建议表示赞赏。

卡克斯顿

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过字符串var获取自定义对象属性

无法从其他应用获取自定义帐户的AuthToken

Android:如何获取自定义XML

通过ActionExecutingContext从控制器.Net Core获取自定义属性

通过Microsoft Graph在Outlook加载项中获取自定义属性集

通过syndicationitem获取自定义rss feed项目元素?

Spring Boot-无法从application.yml中读取自定义属性

无法从Firestore获取自定义对象

无法读取自定义属性

无法读取自定义验证程序的属性,并且必填-Angular

TypeError:无法读取自定义函数中未定义的属性“ then”

无法在asp.net操作筛选器中获取自定义属性

无法从MapView获取自定义模型确实更改了状态功能

通过WooCommerce管理员批量订单操作获取自定义计算

无法从“ index.js”解析模块以获取自定义组件

在select2中使用Ajax时无法获取自定义属性值

无法从jQuery click函数中的元素获取自定义属性

WordPress-如何通过Slug获取自定义帖子类型?

无法从支持Bean获取自定义组件属性

如何通过管理API获取自定义数据源的自定义维度?

使用水豚,我无法从href读取自定义数据属性

如何在spring数据中使用JPQL或Criteria Api通过枚举属性获取自定义数据组?

通过转发器获取自定义帖子类型字段

通过 VBA 屏幕抓取获取自定义元素

如何通过命令行在 jmeter 中获取自定义日志

Azure AD B2C - 通过令牌中的图形 API 获取自定义属性集

无法使用请求从 zillow 中抓取自定义属性链接

如何通过 Javascript 获取自定义 css 样式?

通过点表示法获取自定义变量