Android Java的Cloudboost文件url为空

Android Java的Cloudboost文件url为空,java,android,cloudboost,Java,Android,Cloudboost,我从Cloudboost文件对象获取所有文件信息时遇到了一个小问题。下面是我用来获取文件id、名称和url的代码。问题是我可以找回身份证和姓名;然而,url是空的,我不知道为什么或者如何修复它。有什么想法吗 class FileQuery extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... params) { CloudQuery q

我从Cloudboost文件对象获取所有文件信息时遇到了一个小问题。下面是我用来获取文件id、名称和url的代码。问题是我可以找回身份证和姓名;然而,url是空的,我不知道为什么或者如何修复它。有什么想法吗

class FileQuery extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... params) {
        CloudQuery query = new CloudQuery("Pubs");
        query.include("file");
        query.equalTo("id", "U1YV132B");
        try {
            query.find(new CloudObjectArrayCallback() {
                @Override
                public void done(CloudObject[] x, CloudException t) throws CloudException {
                    if (x != null) {
                        for (int i = 0; i < x.length; i++) {
                            final CloudFile f = new CloudFile(x[i].getDocument());
                            f.fetch(new CloudFileArrayCallback() {
                                @Override
                                public void done(CloudFile[] x, CloudException t) throws CloudException {
                                    Log.d("dozer74", "File Id: " + f.getId()); // This will print out
                                    Log.d("dozer74", "File Name: " + f.getFileName()); // This will print out
                                    Log.d("dozer74", "File URL: " + f.getFileUrl()); // This is null
                                }
                            });
                        }
                    }
                }
            });
        } catch (CloudException e) {
            e.printStackTrace();
        }
        return null;
    }
}

假设表
Pubs
中的列
file
实际上是
file
类型,并且您将
CloudFile
保存到
CloudBoost
中,然后将其保存到
Pubs

您现在应该像这样访问您的
云文件:

final CloudFile file=new CloudFile(x[i].getDocument().getJSONObject("file"));
这是因为您的线路

final CloudFile f = new CloudFile(x[i].getDocument());
简单地

  • 返回
    CloudObject的主体
  • 使用上面步骤1的输出创建
    CloudFile
  • 您缺少一个步骤,如下所示:

    1.获取
    CloudObject的主体
    2.在
    CloudObject

    3.使用上面步骤2的输出创建
    CloudFile


    CloudObject.getFile([columnName])
    是JavaSDK-1.0.3中简化此操作的改进之一,您应该能够很快从
    CloudBoost
    repo中克隆该操作

    final CloudFile f = new CloudFile(x[i].getDocument());