gpt4 book ai didi

android - 将电子邮件地址作为目标的 SmsManager - NullPointerException

转载 作者:行者123 更新时间:2023-11-29 00:46:38 24 4
gpt4 key购买 nike

我的手机运营商提供短信电子邮件网关。这只需输入电子邮件地址作为 SMS 消息的目的地即可完成。电子邮件发送为 5555555555@mycarrier.com

我正尝试在我的新 Android 设备上使用它。标准的 android 消息传递应用程序将所有以电子邮件地址作为目的地的消息转换为“彩信”,并尝试将它们作为数据发送——这不是我想要做的。

尝试使用 android.telephony.SmsManager:

SmsManager manager = SmsManager.getDefault();

manager.sendTextMessage("address@example.com", 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("address@example.com", null, "Message body here", null, null);

在 HTC Desire Z - Android v2.2 上测试

最佳答案

请查看这篇文章。

Programatically send SMS to email using Verizon Motorola Droid on Android

How to send SMS message reply to email address?

你应该知道运营商的短信网关号码,然后像这样发送一条消息:

SmsManager manager = SmsManager.getDefault();
manager.sendTextMessage("6425", null, "username@domain.com (Subject) message text", null, null);

Verizon 无线 -> 6425,AT&T 移动 -> 121 111

关于android - 将电子邮件地址作为目标的 SmsManager - NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com