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