SmsManager导致com.android.phone强制随机关闭

时间:2010-11-15 17:18:48

标签: android text sms

我正在使用SmsManager从我的应用程序发送短信。代码段是

smsManager.sendTextMessage(number, null, content, null, null);

对于少于160个字符的邮件。对于我使用的多部分消息,

ArrayList<String> parts = smsManager.divideMessage(content);
sMan.sendMultipartTextMessage(number, null, parts, null, null);

这些陈述导致com.android.phone进程意外停止,请以随机方式再试一次。我不明白发生了什么。

这是我得到的堆栈跟踪:

java.lang.NullPointerException
E/AndroidRuntime( 1143):    at com.android.internal.telephony.SMSDispatcher.handleSendComplete(SMSDispatcher.java:741)
E/AndroidRuntime( 1143):    at com.android.internal.telephony.SMSDispatcher.handleMessage(SMSDispatcher.java:407)
E/AndroidRuntime( 1143):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1143):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1143):    at android.app.ActivityThread.main(ActivityThread.java:4603)
E/AndroidRuntime( 1143):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1143):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1143):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime( 1143):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime( 1143):    at dalvik.system.NativeStart.main(Native Method)

任何指针都将非常感激。

1 个答案:

答案 0 :(得分:2)

smsManager.sendTextMessage(number, null, content, null, null);

从技术上讲, sentIntent deliverIntent null 参数不应导致任何问题。但我的申请并非如此。我在Android市场上看到过很多应用程序,同样的问题和用户给他们1星评级。我用无意义的意图重新调整了null参数,现在使用它们没有问题。

PendingIntent sent = PendingIntent.getBroadcast(context, 0, new Intent(), 0);
PendingIntent delivered = PendingIntent.getBroadcast(context, 0, new Intent(), 0);
smsManager.sendTextMessage(number, null, content, sent, delivered);

现在代码工作正常。