我正在使用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)


任何指针将不胜感激。

最佳答案

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


从技术上讲,sendIntent和deliveryIntent的null参数应该不会引起任何问题。但是我的应用程序并非如此。我已经看到Android市场上许多具有相同问题的应用程序,并且用户给它们1星评级。我用微不足道的意图代替了空参数,现在使用它们没有麻烦。

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);


现在代码可以正常工作了。

关于android - SmsManager导致com.android.phone强制随机关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4187025/

10-12 13:00
查看更多