sendMultipartTextMessage 抛出 NullPointerException,但收件人和消息不为空

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

我希望我的 Android 应用程序能够发送短信,但不幸的是我无法实现。每次,当应用程序尝试在我的 Sony Xperia T3 (Android 4.4.2) 中运行 sendMultipartTextMessage 方法时,它会崩溃并出现来自方法的 NullPointerException:

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

下面是负责发送短信的代码片段:

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);
   (...)
}

如您所见,sms_kontakt 和 sms_body 变量不为空,所以我不知道出了什么问题。 AndroidManifest.xml 中有适当的权限(我不确定 WRITE_SMS 是否是强制性的):

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

当我使用标准的 sendTextMessage 方法时,它也抛出 NullPointerException(具有相同的收件人和消息)。你能告诉我,为什么我的应用程序不能发送短信吗?我将不胜感激每一个答案:)

我很快找到了解决问题的方法。没有例外,当我输入 phone 号码而不是联系人姓名时。现在我的应用程序可以毫无问题地发送短信了:)