无法使用SmsManager在某些Android手机上发送短信

时间:2012-01-13 15:09:07

标签: android sms

我的移动应用程序偶尔会发送短信,一切都在大多数手机上运行良好,但我开始接收来自某些用户的电子邮件,说明这些消息不会消失。这是我正在使用的代码:

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手机用户的电子邮件。

请记住,这不是特定于手机的,我已在其中两部手机(我的朋友)上测试了该应用,并且短信已正常发送

1 个答案:

答案 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
    }
}

我怀疑发生的事情是用户在您发送邮件时没有信号,因此失败并且永远不会重试。这也可以解释为什么它不是特定于设备的。