我正在处理消息发送和接收,我通过广播接收器获得了许多消息接收的答案,但是没有解决方案来发送消息。
<receiver
android:name="com.test.services.MessageReciver"
android:enabled="true"
android:permission="android.permission.BROADCAST_SMS" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
public static final String ACTION_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
public static final String ACTION_SENT = "android.provider.Telephony.SMS_DELIVER";
Context context;
@Override
public void onReceive(Context context, Intent intent) {
// this section works only when message received on in case of sent
}
但是广播接收器仅适用于收到的消息而不是发送的消息。
答案 0 :(得分:1)
您应该将PendingIntent用于SMS Sent和Delivery。 请参考以下语法:
sendTextMessage(String destinationAddress,String scAddress,String text,PendingIntent sentIntent ,PendingIntent deliveryIntent )
sentIntent 和 deliveryIntent 可用作广播操作,您可以完成所需的任务。
答案 1 :(得分:1)
这里的问题是它们实际上都是接收动作,它们的不同之处在于它们只被传送到默认的短信应用程序,而另一个被传送到所有短信应用程序。
public static final String SMS_DELIVER_ACTION
广播操作:设备已收到新的基于文本的SMS消息。此意图仅传递给默认的短信应用程序。
常量值:“android.provider.Telephony.SMS_DELIVER”
public static final String SMS_RECEIVED_ACTION
广播操作:设备已收到新的基于文本的SMS消息。该意图将作为通知发送给所有注册接收者。
常量值:“android.provider.Telephony.SMS_RECEIVED”
发送短信时没有广播的动作。
要接收已发送的短信广播,请检查