Android意向-如何在Android中使用发送短信的意向共享文本和图像
我尝试使用我的应用程序中的意图共享文本并将图像附加到sms消息。它接受消息正文,但显示错误,“无法附加文件”作为toastAndroid意向-如何在Android中使用发送短信的意向共享文本和图像,android,kotlin,android-intent,Android,Kotlin,Android Intent,我尝试使用我的应用程序中的意图共享文本并将图像附加到sms消息。它接受消息正文,但显示错误,“无法附加文件”作为toast val intent = Intent(Intent.ACTION_SEND) intent.putExtra("sms_body", message) intent.putExtra(Intent.EXTRA_STREAM, attachment) intent.type = "image/*" intent.addFlags(Intent.FLAG_GRANT_WRIT
val intent = Intent(Intent.ACTION_SEND)
intent.putExtra("sms_body", message)
intent.putExtra(Intent.EXTRA_STREAM, attachment)
intent.type = "image/*"
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
activity?.startActivity(intent)
我尝试了很多方法,但都没有成功。你认为我错在哪里?是否无法通过短信共享图像?非常感谢您的帮助 您正在使用android.resource
Uri
用于额外的\u流
。并非所有应用程序都能够使用您的android.resource
Uri
,因为它们不希望使用该方案
如果您希望提高兼容性,请使用
FileProvider
使用FileProvider.getUriForFile()
共享您的PNG图像,这样您就有了一个内容Uri
用于额外的\u流
首先,使用一个具体的MIME类型。这是你的附件,所以你的工作就是告诉另一个应用程序MIME类型是什么。其次,您没有授予读访问权限,只授予写访问权限(其他应用可能不需要)。附件
(例如,带有文件
方案的Uri
)也可能有问题,但我们需要知道附件
是什么意思。@Commonware附件是png图像(Uri),它与facebook和instagram共享“附件是png图像(Uri)”--然后使用图像/png
,不是image/*
。此外,从Uri
的角度来看,方案很重要<代码>操作发送
应该为额外流
使用内容
方案。通常,这意味着您应该使用FileProvider
来获取Uri
.Uri.parse(ContentResolver.SCHEME\u ANDROID\u RESOURCE+“:/”+context.resources.getResourcePackageName(resID)+'/'+context.resources.getResourceTypeName(resID)+'/'+context.resources.getResourceEntryName(resID)@commonware这就是我如何获取提供png图像资源id的Uri的方法。我更改了mime类型,并按照您所说的授予了读取权限。