将输入流附加到电子邮件

时间:2017-01-03 21:56:39

标签: android

我有一个android apk扩展文件,并且有一些PDF文件。 在官方文档中,他们通过Inputstream访问.obb中的文件。我可以通过输入流访问.obb中的文件。

现在我想将其中一个文件附加到带有Intent的电子邮件中。电子邮件意图与资产中的文件完美配合,因此问题在于附加了输入流。

如何直接从.obb?

将PDF附加到邮件中

1 个答案:

答案 0 :(得分:0)

解决了!

您必须将Inputstream转换为Temorary File,获取该文件的Uri并将其附加到电子邮件Intent。

    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("application/pdf");

    try {
        ZipResourceFile expansionFile = new ZipResourceFile("Path to .obb file");
        InputStream fileStream = expansionFile.getInputStream("Path inside .obb");

        String downloadordner = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString(); //used for temp storage

        File tempFile = new File(downloadordner+"/"+"filename.pdf");
        tempFile.deleteOnExit();
        FileOutputStream out = new FileOutputStream(tempFile);
        IOUtils.copy(fileStream, out);

        Uri theUri = Uri.fromFile(tempFile);

        i.putExtra(Intent.EXTRA_STREAM, theUri);
        startActivity(Intent.createChooser(i, "PDF versenden..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(preisliste.this, "Es wurde kein E-Mail Client gefunden.", Toast.LENGTH_SHORT).show();
    }
    catch (IOException e)
    {
        Log.v("Datei nicht gefunden","Main Expansion");
    }