You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio(Java)中点击按钮唤起系统短信应用

实现方案:唤起安卓自带短信应用并指定联系人手机号

核心思路

通过构建指定ACTION_SENDTO动作的Intent,并传入包含目标手机号的smsto:格式Uri,即可直接唤起系统自带短信应用,自动填充收件人手机号,无需预设短信内容。

具体实现步骤与代码

  1. 获取目标联系人手机号
    从你的通讯录数据源(比如列表点击事件、详情页数据)中拿到对应联系人的手机号字符串,建议提前去除手机号中的空格、横杠等特殊字符,确保为纯数字格式。

  2. 构建并启动Intent
    在短信发送按钮的点击事件中添加以下代码:

    // 示例:从数据源获取的联系人手机号
    String targetPhone = "138xxxx1234";
    // 清理手机号中的非数字字符,避免Uri解析异常
    targetPhone = targetPhone.replaceAll("[^0-9]", "");
    
    // 创建短信唤起Intent
    Intent smsIntent = new Intent(Intent.ACTION_SENDTO);
    // 设置收件人Uri
    smsIntent.setData(Uri.parse("smsto:" + targetPhone));
    
    // 检查是否有应用能处理该Intent,防止崩溃
    if (smsIntent.resolveActivity(getPackageManager()) != null) {
        startActivity(smsIntent);
    } else {
        Toast.makeText(this, "未找到可用的短信应用", Toast.LENGTH_SHORT).show();
    }
    

注意事项

  • 权限说明:无需申请SEND_SMS权限,因为我们只是唤起系统短信应用,而非直接发送短信。
  • Fragment适配:如果在Fragment中实现,需将this替换为requireContext()来获取上下文对象。
  • 格式校验:务必确保手机号为纯数字格式,否则可能导致Uri解析失败,无法正确唤起短信应用。

内容的提问来源于stack exchange,提问作者Brayan Perez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:01:25