java - 如何在 Android 中发送短信?

标签 java android sms smsmanager

如何发送短信?看起来很简单,但对我来说不起作用。

我在 list 中拥有权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.healthapp.healthapp">

<uses-permission android:name="android.permission.SEND_SMS"/>

<application   ...

然后我的 onClick 中包含以下代码:

SmsManager smsManager = SmsManager.getDefault();

smsManager.sendTextMessage("07123456789", null, "Hello there!", null, null);

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content");
sendIntent.setType("vnd.android-dir/mms-sms");
                            startActivity(sendIntent);

但是当我运行这个时,我得到“不幸的是应用程序已停止。”

以及错误消息:

FATAL EXCEPTION: main
Process: com.healthapp.healthapp, PID: 13477
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }

最佳答案

您的代码中有两种不同的发送短信的方法。如果您想使用 SmsManager,那么您不需要 Intent/startActivity() 方法,该方法会尝试打开另一个应用程序来处理短信。

您只需删除 smsManager.sendTextMessage() 行之后的所有内容,就不会再出现该 Exception 了。

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("07123456789", null, "Hello there!", null, null);

关于java - 如何在 Android 中发送短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37050212/

相关文章:

java - Android ime actionGo 在某些设备上不工作

android - 是什么阻止了其他应用窃取我的 Google OAuth 客户端 ID?

android - 如何获取已发送短信的送达报告?

iphone - 如何从 iPhone 应用程序访问和打开 iPhone 的 SMS API

java - 带有 GWT 的 POJO 库

java - 用多态类替换 switch

java - 从 Weka Java API 获取欧几里得距离

android - 在我的应用程序中关闭推送通知

java - Android自定义双击位置

Android - 从 PDU 已弃用的 API 创建 SMS?