2013-02-07 108 views
1

好吧,我已经试过了一切。我想要做的只是发送短信。但是我得到这个错误,当我尝试:发送短信,NullPointerException

02-07 17:05:45.550: W/System.err(17373): java.lang.NullPointerException 
02-07 17:05:45.550: W/System.err(17373): at android.os.Parcel.readException(Parcel.java:1333) 
02-07 17:05:45.555: W/System.err(17373): at android.os.Parcel.readException(Parcel.java:1281) 
02-07 17:05:45.555: W/System.err(17373): at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:698) 
02-07 17:05:45.555: W/System.err(17373): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:113) 
02-07 17:05:45.555: W/System.err(17373): at fi.juunas.paali.MainActivity.sendSMS(MainActivity.java:178) 
02-07 17:05:45.555: W/System.err(17373): at fi.juunas.paali.MainActivity.textSingle(MainActivity.java:104) 
02-07 17:05:45.560: W/System.err(17373): at fi.juunas.paali.MainActivity$1.onClick(MainActivity.java:80) 
02-07 17:05:45.560: W/System.err(17373): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167) 
02-07 17:05:45.560: W/System.err(17373): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-07 17:05:45.560: W/System.err(17373): at android.os.Looper.loop(Looper.java:137) 
02-07 17:05:45.560: W/System.err(17373): at android.app.ActivityThread.main(ActivityThread.java:4507) 
02-07 17:05:45.560: W/System.err(17373): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 17:05:45.565: W/System.err(17373): at java.lang.reflect.Method.invoke(Method.java:511) 
02-07 17:05:45.565: W/System.err(17373): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
02-07 17:05:45.565: W/System.err(17373): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
02-07 17:05:45.565: W/System.err(17373): at dalvik.system.NativeStart.main(Native Method) 

我打电话这样的方法的功能:

SmsManager mgr = SmsManager.getDefault(); 
Log.d(TAG, "Number: " + number); 
Log.d(TAG, "Message: " + msg); 
mgr.sendTextMessage(number, null, msg,null,null); 

数= “04” 味精= “T”

事情是,这在模拟器上完美运行。就像你所期望的一样。但不是在我的Galaxy S2上。我希望我能正确格式化数字。我试过也包括国家代码,但问题是一样的。哦,是的,信息只有一个字符长,所以问题不能说它太长了。并且应允许scAddress和PendingIntents为空。

我只是用尽了想法。我唯一的想法是这个数字格式错了,或者S2操作系统中有一个巨大的错误。

任何想法?

+0

请给出您的完整代码 – TN888

+0

您的手机中可能没有smsc编号。 – njzk2

+0

@ njzk2我也想到了。我怎么检查它? – juunas

回答

0

好的,问题就解决了在指示。我将手机更新到了Android 4.1.2(之前有ICS),现在它完美无缺地工作。我没有修改代码。显然,操作系统本身有问题。

0

https://developer.android.com/reference/android/telephony/SmsManager.html#sendTextMessage(java.lang.String,%20java.lang.String,%20java.lang.String,%20android.app.PendingIntent,%20android.app.PendingIntent)

发送挂起的意图对象并检查它为什么不工作。挂起的意图对象将包含任一

RESULT_ERROR_GENERIC_FAILURE 
RESULT_ERROR_RADIO_OFF 
RESULT_ERROR_NULL_PDU 

作为API

+0

我从来没有得到广播。它在能够发送之前崩溃。 – juunas