我的移动应用程序偶尔会发送短信,一切都在大多数手机上运行良好,但我开始接收来自某些用户的电子邮件,说明这些消息不会消失。这是我正在使用的代码:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("+12223334444", null, "test sms", null, null);
我在某处读过我应该使用PendingIntent,所以我尝试了如下:
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent("SMS_DELIVERED"), 0);
SmsManager sm = SmsManager.getDefault();
sm.sendTextMessage(number, null, message, sentPI, deliveredPI);
到目前为止,我收到了三星Galaxy S II,Sprint Evo Shift,三星Sidekick手机用户的电子邮件。
请记住,这不是特定于手机的,我已在其中两部手机(我的朋友)上测试了该应用,并且短信已正常发送
答案 0 :(得分:2)
这里的问题是你根本没有处理重试。 SMS可能无法以各种丰富多彩的方式发送。您可以使用发送的PendingIntent
使用以下内容来监听这些事件:
public void onReceive(Context context, Intent intent) {
if (getResultCode() != Activity.RESULT_OK) {
// failed to send the sms, see SmsManager.ERROR_<description> for more info on why
}
}
我怀疑发生的事情是用户在您发送邮件时没有信号,因此失败并且永远不会重试。这也可以解释为什么它不是特定于设备的。