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

Flutter技术问询:如何借助包调用内置短信应用发送短信?

嘿,刚好我之前做过类似的需求,给你整理两种靠谱的方法,都是调用系统默认短信应用的,不用自己从零开发短信功能~

方法一:用Flutter原生方式(借助官方维护的轻量包)

其实Flutter本身没有直接调用短信应用的API,但我们可以利用系统的URL Scheme,配合官方的url_launcher包来实现,这个包不算“第三方小众包”,是Flutter团队推荐的工具包,用起来很稳。

步骤:

  1. 先在pubspec.yaml里添加依赖:
dependencies:
  url_launcher: ^6.1.12 # 记得用最新版本哦

然后执行flutter pub get安装。

  1. 写发送短信的函数:
import 'package:url_launcher/url_launcher.dart';

Future<void> openDefaultSMSApp(String phoneNumber, String message) async {
  // 构建短信URI,自动填充收件人和内容
  final smsUri = Uri(
    scheme: 'sms',
    path: phoneNumber,
    queryParameters: {
      'body': Uri.encodeComponent(message), // 转义特殊字符,避免乱码
    },
  );

  if (await canLaunchUrl(smsUri)) {
    await launchUrl(smsUri); // 打开系统默认短信应用
  } else {
    throw Exception('无法打开系统短信应用,请检查设备是否支持');
  }
}
  1. 调用这个函数就行,比如按钮点击事件里:
ElevatedButton(
  onPressed: () => openDefaultSMSApp('13800138000', '你好,这是测试短信'),
  child: const Text('发送短信'),
)

这个方法的好处是:完全依赖系统短信应用,不需要申请额外的短信发送权限,用户可以看到内容并确认发送,更安全。

方法二:用专门的第三方包简化操作

如果觉得自己写URI麻烦,可以用专门处理短信的第三方包,比如flutter_sms,它封装了平台差异,用起来更省心。

步骤:

  1. 添加依赖到pubspec.yaml:
dependencies:
  flutter_sms: ^2.3.0 # 请确认最新版本

执行flutter pub get安装。

  1. 调用发送函数:
import 'package:flutter_sms/flutter_sms.dart';

Future<void> sendSMSViaPackage(String phoneNumber, String message) async {
  final recipients = [phoneNumber];
  try {
    final result = await sendSMS(message: message, recipients: recipients);
    print('短信操作结果:$result');
    // 大部分情况下会直接打开系统短信应用,填充好内容等用户发送
  } catch (e) {
    print('发送失败:$e');
  }
}

额外注意事项:

  • 权限:Android 6.0及以上需要在AndroidManifest.xml里添加权限:
<uses-permission android:name="android.permission.SEND_SMS" />

如果是Android 11及以上,还要添加包可见性声明,确保能找到短信应用:

<queries>
  <intent>
    <action android:name="android.intent.action.SENDTO" />
    <data android:scheme="sms" />
  </intent>
</queries>
  • 测试:一定要在真机上测试,模拟器大概率没有完整的短信功能。
  • 用户体验:不管哪种方法,都建议不要静默发送短信,最好让用户确认后再发送,避免隐私问题。

内容的提问来源于stack exchange,提问作者Vaibhav Bhavsar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:15:42