我写了一些应用程序(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);
}
答案 0 :(得分:0)
你可以使用javamail api从android做到这一点 你可以试试这个链接 Send email in android using JavaMail API with smtp but without SSL
但过了一段时间后,gmail可能会在您的帐户中出错,因为您的位置可能会因来自不同国家/地区的用户使用您的应用访问您的Gmail而有所不同。