0

出于某种原因,即使 Gmail 在其撰写屏幕中显示 PNG 附件,该附件也永远不会发送。对我来说我在这里做错了什么并不明显。

        view.setDrawingCacheEnabled(true);
        Bitmap b = view.getDrawingCache();
        try {
            boolean r = b.compress(CompressFormat.PNG, 95, new FileOutputStream(outputFile));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        emailIntent.setType("image/png");
        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{emailTo});
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailText);
        Uri u = Uri.fromFile(outputFile);
        emailIntent.putExtra(Intent.EXTRA_STREAM, u);
        this.startActivityForResult(emailIntent, 0);
4

3 回答 3

0

将您的文件放在Context.getCacheDir()目录中。

现在,在创建新文件之前,请检查现有文件,如果它们超过几个小时或其他任何时间,则将其删除。

于 2013-05-17T14:17:38.103 回答
0

呃。在 onActivityResult 我删除了文件。如果 Gmail 要发送它,则不能这样做。想知道是否有其他方法可以删除它,而不是等待一段时间并直接删除它。

于 2013-05-17T14:09:02.697 回答
0

尝试:

    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    emailIntent.setType("image/png");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{emailTo});
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailText);
    emailIntent.putExtra(Uri.fromFile(outputFile);
    emailIntent.putExtra(Intent.EXTRA_STREAM, u);
    this.startActivityForResult(emailIntent, 0);
于 2013-05-17T14:08:06.530 回答