我正在做一个应用程序,我必须从CDMA手机发送短信,但它会引发空指针异常。我使用从CDMA发送短信(htc evo)抛出空指针异常
smsmanager.sendDataMessage(phonenumber, null, (short)1001, msgStr.getBytes(), sentPI, deliveredPI);
它抛出如下错误: -
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): FATAL EXCEPTION: main
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): java.lang.NullPointerException
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.os.Parcel.readException(Parcel.java:1253)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.os.Parcel.readException(Parcel.java:1235)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at com.android.internal.telephony.ISms$Stub$Proxy.sendData(ISms.java:558)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.telephony.SmsManager.sendDataMessage(SmsManager.java:524)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at prototype.smsonport.SmsOnPortActivity.sendSMS(SmsOnPortActivity.java:139)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at prototype.smsonport.SmsOnPortActivity.onClick(SmsOnPortActivity.java:38)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.view.View.performClick(View.java:2408)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.view.View$PerformClick.run(View.java:8817)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.os.Handler.handleCallback(Handler.java:587)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.os.Handler.dispatchMessage(Handler.java:92)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.os.Looper.loop(Looper.java:144)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at android.app.ActivityThread.main(ActivityThread.java:4937)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at java.lang.reflect.Method.invokeNative(Native Method)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at java.lang.reflect.Method.invoke(Method.java:521)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-21 14:53:26.875: ERROR/AndroidRuntime(8645): at dalvik.system.NativeStart.main(Native Method)
下面是函数
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent senDPI = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(SENT),
0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(
DELIVERED), 0);
SmsManager sms = SmsManager.getDefault();
short s = Short.parseShort(portStr);
short port = s;
Log.d("Data", "Sending SMS TO :: "+phonenumber);
Log.d("Data", "Sending SMS MESSAGE :: "+msgStr);
Log.d("Data", "Sending SMS on PORT :: "+port);
sms.sendDataMessage(phonenumber, null, port, msgStr.getBytes(), senDPI, deliveredPI);
所有PHONENUMBER,msgStr,港口来源于我的XML布局文件的EDITTEXT领域。 我在这里错过了什么? 帮助赞赏。
那一行代码不足以诊断您的问题。你需要发布更多的代码。 – Squonk
在你的日志中你有'toStr' - 是电话号码吗?如果是这样,它从哪里来的代码?另外,'phonenumber'在'sendDataMessage(...)'的调用中来自哪里? – Squonk
此外,来自API DEMO 8的SMS消息示例代码也不适用于htc evo CDMA电话 – user755499