我的手机运营商提供了一个短信电子邮件网关。这只需输入电子邮件地址作为SMS消息的目的地即可完成。该电子邮件交付[email protected]以电子邮件地址作为目的地的SmsManager - NullPointerException
我试图用我的新Android设备。标准的android消息传递应用程序将所有邮件都作为目的地的电子邮件地址转换为“MMS”,并尝试将它们作为数据发送 - 而不是我想要做的。
与android.telephony.SmsManager
尝试:
SmsManager manager = SmsManager.getDefault();
manager.sendTextMessage("[email protected]", null, "Message body here", null, null);
这将引发以下异常:
Caused by: java.lang.NullPointerException
at com.android.internal.telephony.gsm.SmsMessage.getSubmitPduHead(SmsMessage.java:595)
at com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(SmsMessage.java:295)
at android.telephony.SmsMessage.getSubmitPdu(SmsMessage.java:599)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:228)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:107)
我已经看了这个项目,android-sms-email,它试图做同样的事情。它也配置为我的运营商时以同样的方式崩溃。
这看起来并不像期望的行为,我认为这是一个Android错误(一些错误报告暗示该问题)。我已经尝试了一下,可以看到在电子邮件地址后附加任意数字和一些符号不会导致相同的失败,但消息也不会传递。
我也试过使用SmsManager.sendMultipartTextMessage
,但在SmsMessage.getSubmitPduHead
内遇到同样的问题。
还是那句话:
SmsManager manager = SmsManager.getDefault();
// Works
manager.sendTextMessage("15555555555", null, "Message body here", null, null);
// Fails
manager.sendTextMessage("[email protected]", null, "Message body here", null, null);
测试上的HTC Desire Z的 - 的Android V2.2