从owncloud服务器获取图像下载链接

时间:2017-03-20 01:48:27

标签: android android-recyclerview owncloud

对于新手来说,没有太多信息可以拥有云...在Stack Overflow中甚至没有,有关我想要实现的目标的背景是:

- 已经设法通过gradlle将我的项目同步到owncloud库。 - 提供的例子对我没什么帮助,你会明白为什么。

我使用这个库https://github.com/bumptech/glide将图片网址流式传输到我的应用中的某些图片视图,因为我在网络服务器上我没有任何问题,但现在我转移到了owncloud,如果我提供的话,我也可以这样做我的应用程序使用存储图像中的“下载链接”。

那就是说,我需要的是如何能够通过名称选择自己的云存储图像(访问共享文件夹并下载),或者从存储的地方读取下载链接。

这是在我的项目中使用滑动库

 String url = null;
        if (plato.getFoto_movil().equals("churrasco.jpg"))
        {
            url = "http://192.168.0.20/owncloud/index.php/s/EqX7LxLpUeBCzF4/download";
        }

        if (plato.getFoto_movil().equals("pizza.jpg"))
        {
            url = "http://192.168.0.20/owncloud/index.php/s/VGQJh6ii36PLGsN/download";
    }


        if (plato.getFoto_movil().equals("torta_chocolate.jpg"))
        {
            url = "http://192.168.0.20/owncloud/index.php/s/K0TaHRMPuMrs0Fx/download";
        }


        Glide.with(mContext).load(url).into(imageView);

这很可悲,因为我不得不从我的浏览器手动获取这些URL,而且它不适用于来自任何其他设备的新添加的图像,所以我需要能够获取任何新图像并显示它。

我已经安装了100%的库并实现了

      private void startDownload(String filePath, File targetDirectory) {
                DownloadRemoteFileOperation downloadOperation = new DownloadRemoteFileOperation(filePath, targetDirectory.getAbsolutePath());
                downloadOperation.addDatatransferProgressListener((OnDatatransferProgressListener) mContext);
                downloadOperation.execute( mClient, (OnRemoteOperationListener) mContext, mHandler);
            }

            @Override
            public void onTransferProgress(long l, long l1, long l2, String s) {
                mHandler.post( new Runnable() {
                    @Override
                    public void run() {
                        // do your UI updates about progress here
                    }
                });
            }

            @Override
            public void onRemoteOperationFinish(RemoteOperation remoteOperation, RemoteOperationResult remoteOperationResult) {
                if (remoteOperation instanceof DownloadRemoteFileOperation) {
                    if (remoteOperationResult.isSuccess()) {
                    }
                }
            }


got those and 

got also this two
            mClient = OwnCloudClientFactory.createOwnCloudClient(serverUri,mContext,true);
            mClient.setCredentials(OwnCloudCredentialsFactory.newBasicCredentials(username,password));

然后我调用方法

startDownload(plato.getFoto_movil(),downloadfolder);

当我调用startdowonload方法时,应用程序崩溃了 错误java.lang.ClassCastException:com.eidotab.eidotab.MainActivity无法强制转换为com.owncloud.android.lib.common.network.OnDatatransferProgressListener

另一个相关信息是我实现了ownclod方法 Recyclerview的观察者

public class VH extends RecyclerView.ViewHolder implements OnRemoteOperationListener, OnDatatransferProgressListener

但是我可以根据需要更改主要活动,可能会让它从那里起作用,但即使它确实有效,也不知道在哪里或如何获得下载链接,就像我说的,我需要下载链接从存储在服务器中的每个图像..

这可能吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

我按照建议将自己的云库的实现更改为主要活动(并且是合乎逻辑的举措)并且一切顺利...首先尝试工作,我知道它会发生,事情是我不想将图像存储在设备内存中,我想捕获下载链接,这是我主要关心的问题但是现在它正在工作,因为我将图像直接从本地sd流式传输到imageview,这应该给我更多时间进一步调查在这个问题上,URLS是什么......

感谢板球的评论