SmsManager вызывает принудительное закрытие com.android.phone случайным образом - PullRequest
1 голос
/ 15 ноября 2010

Я использую SmsManager для отправки текстовых сообщений из моего приложения. Фрагмент кода

smsManager.sendTextMessage(number, null, content, null, null);

Для сообщений длиной менее 160 символов. И для составных сообщений, которые я использую,

ArrayList<String> parts = smsManager.divideMessage(content);
sMan.sendMultipartTextMessage(number, null, parts, null, null);

Эти утверждения вызывают. Процесс com.android.phone неожиданно остановился. Попробуйте снова случайно. Я не понимаю, что происходит.

Это трассировка стека, которую я получил:

java.lang.NullPointerException
E/AndroidRuntime( 1143):    at com.android.internal.telephony.SMSDispatcher.handleSendComplete(SMSDispatcher.java:741)
E/AndroidRuntime( 1143):    at com.android.internal.telephony.SMSDispatcher.handleMessage(SMSDispatcher.java:407)
E/AndroidRuntime( 1143):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1143):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1143):    at android.app.ActivityThread.main(ActivityThread.java:4603)
E/AndroidRuntime( 1143):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1143):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1143):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime( 1143):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime( 1143):    at dalvik.system.NativeStart.main(Native Method)

Любые указатели будут с благодарностью.

1 Ответ

2 голосов
/ 16 ноября 2010
smsManager.sendTextMessage(number, null, content, null, null);

Технически параметры null для sentIntent и deliveryIntent не должны вызывать никаких проблем.Но это не так с моим заявлением.Я видел много приложений на рынке Android с такой же проблемой, и пользователи ставили им 1 звездочный рейтинг.Я изменил нулевые параметры с незначительными намерениями, и теперь у меня нет проблем с их использованием.

PendingIntent sent = PendingIntent.getBroadcast(context, 0, new Intent(), 0);
PendingIntent delivered = PendingIntent.getBroadcast(context, 0, new Intent(), 0);
smsManager.sendTextMessage(number, null, content, sent, delivered);

Теперь код работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...