fun composeSmsMessage(message: String) {
val intent = Intent(Intent.ACTION_SENDTO).apply {
type = HTTP.PLAIN_TEXT_TYPE
data = Uri.parse("smsto:") // This ensures only SMS apps respond
putExtra("sms_body", message)
}
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}
5条答案
按热度按时间iq0todco1#
要使用Intent发送短信,请使用此代码:
希望这能有所帮助!
oalqel3c2#
启用发送短信功能的步骤:
1-在android-manifest中添加发送短信权限,如下所示:
2-在yout Activity中添加此方法:
polhcujo3#
这是通过Intent发送SMS/MMS的唯一正确方法:
https://developer.android.com/guide/components/intents-common#SendMessage
不需要
setType("vnd.android-dir/mms-sms")
或其他恶作剧。有这样的意图的官方文件,应该遵循。
对于短信,您需要的是:
如果您有短信/彩信的收件人,您可以将其添加到数据
smsto:
之后的Uri
中,例如smsto:+123456789
),否则用户将在短信/彩信应用程序中选择收件人。如果文本太长,它将被发送为彩信,如果你需要发送一个带有图像或视频的彩信,你做类似的,但添加一个
Uri
作为Intent.EXTRA_STREAM
,并指定相应的类型(图像/视频)。Uri
需要由一个公开的内容提供商提供相应的图像或视频处理。就个人而言。
(我希望在堆栈溢出中有一种方法可以为“错误答案”投票,以避免人们只是将错误的东西复制到他们的应用程序中)
2w2cym1i4#
如果要确保Intent仅由文本消息应用程序(而非其他电子邮件或社交应用程序)处理,请使用**
ACTION_SENDTO
操作并包含smsto:
**数据方案source : https://developer.android.com/guide/components/intents-common#java
e37o9pze5#
请尝试以下代码...将此代码添加到Button的onClickListener()中。