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

2023-12-14

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

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

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


这里的问题是您根本不处理重试。短信发送失败的可能有多种方式。您可以使用已发送的监听这些事件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
    }
}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在某些 Android 手机上使用 SmsManager 发送短信 的相关文章

随机推荐