【问题标题】:How to send background gmail immediately?如何立即发送后台gmail?
【发布时间】:2016-11-28 08:10:12
【问题描述】:

我编写了一些应用程序(marshmallow sdk),在某些操作中,我需要使用默认设备帐户发送带有一些附加文件的邮件,以便了解用户。

当我尝试使用我的发送操作(附加代码)时,我得到一些对话框,告诉我选择我想用于此共享此文件的应用程序。

我想以某种方式跳过此对话框,只是完成此发送操作,而不让使用此应用程序的用户选择 gmail 并按“发送”按钮。

(就像在后台发送邮件一样)

代码:

 public void SendToMail(String filePath)
{
    Intent emailIntent = new Intent(Intent.ACTION_SEND);

    emailIntent.setType("text/plain");
    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"somemailAddress@gmail.com"});
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Reminder");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "Null");

    File file = new File(filePath);
    if (!file.exists() || !file.canRead()) {
        return;
    }

    Uri uri = Uri.fromFile(file);
    emailIntent.putExtra(Intent.EXTRA_STREAM, uri);


    final PackageManager pm = _context.getApplicationContext().getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
    ResolveInfo best = null;
    for(final ResolveInfo info : matches)
        if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail"))
            best = info;

    if (best != null)
        emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);

    _context.startActivity(emailIntent);
}

【问题讨论】:

标签: android


【解决方案1】:

您可以使用 javamail api 从 android 执行此操作 你可以试试这个链接 Send email in android using JavaMail API with smtp but without SSL

但是一段时间后,gmail 可能会在您的帐户上出现错误,因为您的位置可能会随着来自不同国家/地区的用户使用您的应用程序访问您的 gmail 而有所不同。

【讨论】:

    猜你喜欢
    • 2018-09-11
    • 2020-12-28
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2014-08-12
    • 1970-01-01
    相关资源
    最近更新 更多