1

私は現在、ネイティブ Android アプリケーションを開発しており、ドキュメント サーバー上のいくつかの画像にアクセスしようとしています。通信にはOpenCMISライブラリを使用しています。

私の目標は、写真をダウンロードして、デバイスの内部ストレージまたは SD カードに保存することです。私の質問は、たとえば .zip のような圧縮アーカイブとしてファイルをダウンロードし、これをデバイスで抽出する可能性があるかどうかです。そのため、多くのファイルを個別にダウンロードする代わりに、1 つの大きなファイルをダウンロードしたいと考えています。

これOpenCMISはできることですか?それとも、これはドキュメントサーバーに依存していますか? 私は SAP Mobile Documents を使用しており、ブラウザーを介して Web インターフェイスからフォルダー全体を .zip としてダウンロードできることを知っていますが、カスタム Android クライアントでそれが可能であることについて何かを見つけていません。

ヒントや説明をいただければ幸いです。事前に感謝します。

4

1 に答える 1

1

それで、Florian Müller の助けを借りて動作するようになりました。

興味のある方のために説明すると、ネイティブ Android アプリで SAP Mobile Document Server からフォルダーを .zip アーカイブとしてダウンロードする最終的なコードは次のようになります。

public void downloadAsZip(Session session, Folder folder, File destination){
    ContentStream zipStream = session.getContentStream(folder, "sap:zipRendition", null, null);
    InputStream inputStream = zipStream.getStream();

    try {
        File file = new File(destination, folder.getName()+".zip");
        FileOutputStream fileOutputStream = new FileOutputStream(file);

        byte[] buffer = new byte[1024];
        int bufferLength = 0;

        while ((bufferLength = inputStream.read(buffer)) > 0) {
            fileOutputStream.write(buffer, 0, bufferLength);
        }

        fileOutputStream.close();
        inputStream.close();
    }
    catch(IOException e){
        Log.e(TAG, "An error occurred: "+e.getMessage());
    }
}
于 2015-06-23T10:01:52.857 に答える