我正在尝试使用SmsManager.sendDataMessage()
从HTC EVO 4G向自身发送和接收端口定向的短信,并且该设备在操作系统中提供了非常深的NullPointerException。
以下是启动异常的代码:
manager.sendDataMessage(phonenumber, null, (short) 8091, data,piSend, piDelivered);
我认为我在清单中声明了相应的权限:
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
这是我得到的堆栈跟踪:
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): FATAL EXCEPTION: main
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): java.lang.NullPointerException
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.os.Parcel.readException(Parcel.java:1328)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.os.Parcel.readException(Parcel.java:1276)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at com.android.internal.telephony.ISms$Stub$Proxy.sen dData(ISms.java:682)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.telephony.SmsManager.sendDataMessage(SmsMa nager.java:546)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at com.varma.samples.smsdemo.MainActivity.sendSms(Mai nActivity.java:66)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at com.varma.samples.smsdemo.MainActivity.access$0(Ma inActivity.java:50)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at com.varma.samples.smsdemo.MainActivity$1.onClick(M ainActivity.java:98)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.view.View.performClick(View.java:2532)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.view.View$PerformClick.run(View.java:9293)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.os.Handler.handleCallback(Handler.java:587 )
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.os.Handler.dispatchMessage(Handler.java:92 )
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.os.Looper.loop(Looper.java:143)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at android.app.ActivityThread.main(ActivityThread.jav a:4263)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at java.lang.reflect.Method.invokeNative(Native Method)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at java.lang.reflect.Method.invoke(Method.java:507)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:839)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:597)
06-27 11:03:42.144: ERROR/AndroidRuntime(14489): at dalvik.system.NativeStart.main(Native Method)
如果有人想亲自尝试一下,我使用的是here in the SMSDemo project提供的示例。
有人可以帮我解决这个问题吗?
编辑: 我刚刚整理了一个示例J2ME MIDlet,看看我是否可以让它工作,它也失败了。有人记得有关端口导向短信的任何信息吗?在不同的网络上处理方式不同吗?这一切都刚刚过时,我需要与时俱进吗?或者这是我可能正在做的事情?
如果短信是网络依赖的,我正在使用Sprint设备,但我正在加拿大开发,所以我认为他们正在Telus上漫游。