2013-02-07 132 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