2017-07-18 78 views
0

我想发送多个图像。 我试过setType("image/jpeg")也,我看到这个问题张贴在很多地方,却没有找到正确的答案如何发送/附加多个图像

val emailIntent = Intent(android.content.Intent.ACTION_SEND_MULTIPLE, Uri.parse("mailto:" + context?.resources?.getString(R.string.email))) 
emailIntent.setType("application/image") 
val uris = ArrayList<Uri>() 

for (file in filePaths) { 
    val fileIn = File(file) 
    val u = Uri.fromFile(fileIn) 
    uris.add(u) 
} 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, emailSubject) 
emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody) 
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris) 

context?.startActivity(Intent.createChooser(emailIntent, "Email:")); 
+0

https://stackoverflow.com/a/14457735/3673259它说,'应用/ image',而不是'图像/ jpeg' – Joshua

+0

@Joshua \t 我都尝试应用/图像和图像/ JPEG,但非他们正在工作 –

回答

0
  • ACTION_SEND_MULTIPLE意向不采取data说法。所以摆脱构造函数中的Uri.parse("mailto:...参数。请将电子邮件地址改为EXTRA_EMAIL。请注意,这个额外的部分是一个字符串数组,而不是一个简单的字符串
  • 如果所有附件都是JPEG,则使用的正确类型为image/jpeg,否则使用image/*
  • 分享file:// URIs是一个糟糕的Android公民。它要求接收应用程序保存存储权限。改为使用FileProvider,不要忘记添加国旗FLAG_GRANT_READ_URI_PERMISSION