2012-12-31 73 views
4

我正在努力使用SMS服務。當我嘗試發送短信時,我收到以下奇怪的異常。有時短信發送絕對好,但有時我得到這個例外。我不知道問題在哪裏。以下是我的代碼:發送短信時空指針異常,Parcel.ReadException?

String messageText = Util.getSMSText(myActivity.this, Util.CurrentLocation); 
messageText += "http://maps.google.com/maps?q=" + locationInfo.getLat() + "," + locationInfo.getLng(); 
String number = guardian.getGuardianNumber(); 
SmsManager smsManager = SmsManager.getDefault(); 
smsManager.sendTextMessage(number, null, text, null, null); 

以下是跟蹤:

12-22 21:03:59.325: W/System.err(8140):  java.lang.NullPointerException 
12-22 21:03:59.325: W/System.err(8140):  at android.os.Parcel.readException(Parcel.java:1328) 
12-22 21:03:59.325: W/System.err(8140):  at android.os.Parcel.readException(Parcel.java:1276) 
12-22 21:03:59.325: W/System.err(8140):  at com.android.internal.telephony.ISms$Stub$Proxy.sendTextOnSubscription(ISms.java:1096) 
12-22 21:03:59.325: W/System.err(8140):  at android.telephony.SmsManager.sendTextMessage(SmsManager.java:149) 
12-22 21:03:59.325: W/System.err(8140):  at android.telephony.SmsManager.sendTextMessage(SmsManager.java:89) 
12-22 21:03:59.335: W/System.err(8140):  at com.invocode.sms.SMSManager.sendSMS(SMSManager.java:12) 
12-22 21:03:59.335: W/System.err(8140):  at com.invocode.ui.iamhere.myActivity$2$2.onClick(myActivity.java:205) 

任何幫助表示讚賞...

+0

您是否檢查過SEND_SMS權限。以及**號**中是否有一些值。 –

+0

@SahilMahajanMj。msg中​​有經度和緯度值。並且是權限在那裏。 –

+1

**數字**字符串中的內容以及爲什麼您使用了** MessageText **,但在sendSMS中,您使用了**文本**。 –

回答

0

它可以來,如果短信發送號碼是空號。

0

我認爲問題是你的字符串的編碼...這裏同樣的問題。我正在測試,當我發送一個簡單字符串爲「asadsdasd」時,我沒有收到錯誤

0

我在嘗試使用測試產品進行應用內結算時遇到類似錯誤,但是我的草稿版本還沒有上市。

我在想,操作系統無法綁定你的服務。恰巧你使用的服務是基於操作系統的聯繫信息,但你嘗試使用的服務無法被正確地達到。

0

我發現了另一個得到此消息的原因。 如果在消息中使用非ASCII字符(例如U + 02BC),則也會拋出此NPE。