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 :)
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 :)