2

好的,我现在已经尝试了一切。我想做的只是发送一条短信。但是当我尝试时出现此错误:

02-07 17:05:45.550: W/System.err(17373): java.lang.NullPointerException
02-07 17:05:45.550: W/System.err(17373):    at android.os.Parcel.readException(Parcel.java:1333)
02-07 17:05:45.555: W/System.err(17373):    at android.os.Parcel.readException(Parcel.java:1281)
02-07 17:05:45.555: W/System.err(17373):    at com.android.internal.telephony.ISms$Stub$Proxy.sendText(ISms.java:698)
02-07 17:05:45.555: W/System.err(17373):    at android.telephony.SmsManager.sendTextMessage(SmsManager.java:113)
02-07 17:05:45.555: W/System.err(17373):    at fi.juunas.paali.MainActivity.sendSMS(MainActivity.java:178)
02-07 17:05:45.555: W/System.err(17373):    at fi.juunas.paali.MainActivity.textSingle(MainActivity.java:104)
02-07 17:05:45.560: W/System.err(17373):    at fi.juunas.paali.MainActivity$1.onClick(MainActivity.java:80)
02-07 17:05:45.560: W/System.err(17373):    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
02-07 17:05:45.560: W/System.err(17373):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-07 17:05:45.560: W/System.err(17373):    at android.os.Looper.loop(Looper.java:137)
02-07 17:05:45.560: W/System.err(17373):    at android.app.ActivityThread.main(ActivityThread.java:4507)
02-07 17:05:45.560: W/System.err(17373):    at java.lang.reflect.Method.invokeNative(Native Method)
02-07 17:05:45.565: W/System.err(17373):    at java.lang.reflect.Method.invoke(Method.java:511)
02-07 17:05:45.565: W/System.err(17373):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
02-07 17:05:45.565: W/System.err(17373):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
02-07 17:05:45.565: W/System.err(17373):    at dalvik.system.NativeStart.main(Native Method)

我以这样的方法调用该函数:

SmsManager mgr = SmsManager.getDefault();
Log.d(TAG, "Number: " + number);
Log.d(TAG, "Message: " + msg);
mgr.sendTextMessage(number, null, msg,null,null);

数字=“0401234567”味精=“T”

问题是,这在模拟器上完美运行。正如你所期望的那样。但不是在我的 Galaxy S2 上。我希望我的数字格式正确。我也试过包括国家代码,但问题是一样的。哦,是的,而且消息只有一个字符长,所以问题不可能是它太长了。并且 scAddress 和 PendingIntents 应该被允许为空。

我只是没有想法了。我唯一想到的是数字格式错误或 S2 操作系统中存在大量错误。

有任何想法吗?

4

2 回答 2

1

好的,问题解决了。我将我的手机更新到了 Android 4.1.2(它以前有 ICS),现在它可以完美运行了。我没有修改代码。所以显然操作系统本身有问题。

于 2013-02-09T07:41:02.350 回答
0

https://developer.android.com/reference/android/telephony/SmsManager.html#sendTextMessage(java.lang.String,%20java.lang.String,%20java.lang.String,%20android.app.PendingIntent,% 20android.app.PendingIntent)

发送一个待处理的意图对象并检查它为什么不起作用。待处理的意图对象将包含

RESULT_ERROR_GENERIC_FAILURE
RESULT_ERROR_RADIO_OFF
RESULT_ERROR_NULL_PDU

如 API 所示

于 2013-02-07T15:29:39.280 回答