Więc mam ten ślad stosu:Dlaczego otrzymuję komunikat NullPointerException podczas wysyłania wiadomości SMS w telefonie HTC Desire, lub co to jest SubmitPdu?
java.lang.NullPointerException
at android.telephony.SmsMessage$SubmitPdu.<init>(SmsMessage.java:132)
at android.telephony.SmsMessage.getSubmitPdu(SmsMessage.java:551)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:228)
at android.telephony.SmsManager.sendTextMessage(SmsManager.java:107)
at com.emergency.button.SMSSender.safeSendSMS(SMSSender.java:91)
at com.emergency.button.EmergencyActivity$EmergencyThread
.sendSMS(EmergencyActivity.java:294)
at com.emergency.button.EmergencyActivity$EmergencyThread
.sendMessages(EmergencyActivity.java:386)
at com.emergency.button.EmergencyActivity$EmergencyThread
.run(EmergencyActivity.java:266)
I to jest, jak się nazywają sendTextMessage, nie sprawdza długość wiadomość lub numer telefonu ważności:
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
Błąd ten wydaje się występować tylko na HTC Desire lub HTC Wildfire z systemem Android w wersji 2.2 lub 2.21, więc wykopałem źródło platformy Android (co w rzeczywistości nie jest tak łatwe do zrobienia, jak się spodziewałem) i znalazłem:
SmsMessage.java once upon a time chociaż może to nie być istotne, ponieważ widzę niektóre z numery linii nie są wyrównane.
Kod emergency button project to open source, dzięki czemu można sprawdzić kod w celach informacyjnych. Powinienem chyba zauważyć, że sam nie mogę tego przetestować, nie mam żadnego modelu telefonu.
Czy użytkownicy twierdząc go ulega awarii (wymusić zamknięcie lub coś podobnego)? Próbowałem aplikacji z mojego Desire i działało bez problemu - wysłano zarówno wiadomości e-mail, jak i sms. PDU oznacza skrót Protocol Data Unit. – Squonk
Rynek Android zgłasza awarie i mam zintegrowany rejestrator śledzenia stosu. Więc tak, to się załamuje. Dzięki za informacje i testy, zastanawiam się, co dokładnie się dzieje. – ubershmekel
zobacz moją odpowiedź/odpowiedź – Squonk