无法使用SmsManager在某些Android手机上发送短信
问题描述:
我的移动应用程序偶尔会发送短信,在大多数手机上一切正常,但我开始接收来自某些用户的电子邮件,指出邮件不会发送。这里是我使用的代码:无法使用SmsManager在某些Android手机上发送短信
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
}
}
我怀疑的情况是,用户必须在发送邮件的时间没有信号,所以它失败,从不重试。这也可以解释为什么它不是设备特定的。
能否提供SmsManager的完整软件包名称? – Selvin 2012-01-13 15:19:15
@Selvin - 它来自“android.telephony.SmsManager” – 2012-01-13 15:22:55
您是否已经将权限放入了manifest.xml –
2012-01-13 15:23:09