我遇到了同样的问题。你应该能够用这样的代码做你想做的事(从下面的链接复制):
private void launchSMSActivity(final CharSequence phoneNumber) {
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.setData(Uri.fromParts("sms", phoneNumber.toString(), null));
smsIntent.putExtra("sms_body", mMessageWithPattern);
smsIntent.putExtra("exit_on_sent", true);
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(smsIntent, SEND_SMS);
}
但是,4.3 中显然存在一个错误,导致消息字段显示为空白。点击发送仍然会发送消息。错误在这里:https ://code.google.com/p/android/issues/detail?id=58153
鉴于此,您可以选择根据 tyczj 的回答从应用内发送,但请记住,这样做需要向您的应用添加 SMS 权限。当用户获得权限确认对话框时,它会出现在顶部,并通知他们可能会花钱。许多恶意应用程序已使用此权限来增加用户的电话费,因此许多用户对此表示怀疑。
您也可以选择仅在 4.3 设备上的应用程序内发送短信,并使用上面的代码在所有其他设备上按照您想要的方式发送短信。这并不能解决权限问题,除非您发布两个 APK - 一个用于未经许可的 4.3 之前的设备,一个用于 4.3 的有许可的设备。最后一个选项是我现在正在为我自己的应用程序考虑的。