Search code examples
javaandroidnullpointerexceptionsmsmanager

sendMultipartTextMessage throws NullPointerException, but recipient and message aren't null


I would like my Android app to be able to send SMS, but unfortunately I can't achieve that. Every time, when the app tries to run sendMultipartTextMessage method in my Sony Xperia T3 (Android 4.4.2), it crashes with NullPointerException coming from the method:

java.lang.NullPointerException
        at android.os.Parcel.readException(Parcel.java:1471)
        at android.os.Parcel.readException(Parcel.java:1419)
        at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:593)
        at android.telephony.SmsManager.sendTextMessage(SmsManager.java:107)
        at android.telephony.SmsManager.sendMultipartTextMessage(SmsManager.java:257)
        at com.mg.polassis.MainActivity.sms(MainActivity.java:280)
        at com.mg.polassis.MainActivity.przetworz(MainActivity.java:232)
        at com.mg.polassis.MainActivity$listener.onResults(MainActivity.java:107)
        at android.speech.SpeechRecognizer$InternalListener$1.handleMessage(SpeechRecognizer.java:448)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5137)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
        at dalvik.system.NativeStart.main(Native Method)

Here's the code fragment responsible for sending SMS:

private String sms_kontakt = "Jola";
private String sms_body = "Test";
public void sms(String tekst, int kat)
{
   (...)
   SmsManager sms = SmsManager.getDefault();
   ArrayList<String> txt = sms.divideMessage(sms_body);
   sms.sendMultipartTextMessage(sms_kontakt, null, txt, null, null);
   (...)
}

As you can see, the sms_kontakt and sms_body variables aren't null, so I don't know, what's wrong. There're appropriate permissions in AndroidManifest.xml (I'm not sure if WRITE_SMS is mandatory):

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />

When I use standard sendTextMessage method, it throws NullPointerException, too (with the same recipient and message). Could you tell me, why my app can't send SMS? I'll be grateful for every answer :)


Solution

  • I've quickly found a solution to my problem. There're no exceptions, when I enter a phone number instead of a contact name. Now my app can send SMS without any problems :)