SmsManager не работает в Android 4.4.x

Я разрабатываю приложение для Android, которому необходимо отправить сообщение нескольким получателям.

Я использовал этот код для отправки SMS на телефон:

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("9030500259", null, "sms message", null, null);

Я прочитал много вопросов на этом сайте, в которых говорилось, что вышесказанное верно.

В гугле нашел вот это:

http://android-developers.blogspot.in/2013/10/getting-your-sms-apps-ready-for-kitkat.html

Согласно статье по ссылке выше, произошли некоторые изменения в обмене сообщениями.

Я не могу отправить SMS в своем приложении. Какой правильный код для отправки SMS в Android версии 4.4.x?


person Sanjeev Kumar    schedule 31.07.2014    source источник
comment
Вы уверены, что у вас есть правильный набор разрешений в манифесте?   -  person Mike M.    schedule 31.07.2014
comment
Этот кусок кода работает отлично. Как предложил Майк, добавьте эту строку ‹uses-permission android:name=android.permission.SEND_SMS/› в файл AndroidManifest.xml.   -  person Srikanth    schedule 31.07.2014
comment
да, я уверен, я добавил правильное разрешение   -  person Sanjeev Kumar    schedule 31.07.2014
comment
я думаю, в android 4.4.x приведенный выше код не будет работать   -  person Sanjeev Kumar    schedule 31.07.2014
comment
В каком контексте вы пытаетесь отправить текст? То есть вы отправляете из Activity?   -  person Mike M.    schedule 31.07.2014
comment
Этот код отлично работает в 4.4.x   -  person Mike M.    schedule 31.07.2014
comment
да, я отправляю из активности   -  person Sanjeev Kumar    schedule 31.07.2014
comment
Тогда кажется, что есть другие проблемы. Вы уверены, что код достигнут?   -  person Mike M.    schedule 31.07.2014
comment
@МайкМ. Вы видели ссылку, которую я указал   -  person Sanjeev Kumar    schedule 31.07.2014
comment
Много, много раз. Я обратился к нему, например, когда писал текстовые сообщения в свое собственное приложение на 4.4.2.   -  person Mike M.    schedule 31.07.2014
comment
@Mike M. Если я удаляю разрешение на отправку SMS из файла манифеста, возникает ошибка времени выполнения, если я добавляю его, ошибки не возникает, но сообщение не отправляется   -  person Sanjeev Kumar    schedule 31.07.2014
comment
Как определить, что они не идут?   -  person Mike M.    schedule 31.07.2014
comment
@МайкМ. я проверил телефон получателя, сообщение не отправлено из приложения получателю   -  person Sanjeev Kumar    schedule 31.07.2014
comment
Вы добавили печать журнала после вызова sendTextMessage(), чтобы убедиться, что он достигнут? Если вы уверены, что это так, вы можете настроить PendingIntents и BroadcastReceiver, чтобы проверить, есть ли какие-либо проблемы. Этот ответ должен дать вам представление о том, как: stackoverflow.com/questions/24673595/   -  person Mike M.    schedule 31.07.2014
comment
У меня только что возникла другая мысль: убедитесь, что вы импортируете правильный SmsManager. Должно быть android.telephony.SmsManager. Нет android.telephony.gsm.SmsManager.   -  person Mike M.    schedule 31.07.2014
comment
@МайкМ. я уверен, что импортирую правильную библиотеку, я сделал одну вещь, я сохранил приведенный выше код в onCreate() активности, sms работает правильно,   -  person Sanjeev Kumar    schedule 31.07.2014
comment
когда я держу приведенный выше код в цикле for, чтобы отправить сообщение разным получателям, sms не работает,   -  person Sanjeev Kumar    schedule 31.07.2014
comment
Ну, ссылка, которую я дал в предыдущем комментарии, является примером того, как это сделать. Протестировано и проверено на 4.4.2.   -  person Mike M.    schedule 31.07.2014
comment
я думаю, что настоящая проблема в том, что в моем телефоне доступен Android 4.4.4, когда смс собирается отправить стороннее приложение, оно показывает диалоговое окно, в котором говорится, что это приложение собирается отправить сообщение с двумя кнопками разрешить и не разрешать, поэтому, если нужно отправить 10 сообщений, для каждого сообщения должно отображаться диалоговое окно, так как я пишу в цикле for, я думаю, что когда появляется первое диалоговое окно, оно конфликтует со вторым sendtextmessage()   -  person Sanjeev Kumar    schedule 31.07.2014
comment
В Android встроено почасовое ограничение, а некоторые провайдеры ограничивают его еще больше. Если вы уже достигли этого предела во время тестирования, значит, так оно и есть.   -  person Mike M.    schedule 31.07.2014
comment
@МайкМ. ты классный, я попробовал код по указанной тобой ссылке, он работает   -  person Sanjeev Kumar    schedule 31.07.2014
comment
@МайкМ. теперь я обнаружил, что проблема, почему сообщения не отправляются, заключается в самом сообщении, я изменил сообщение на привет, привет, оно отправляется   -  person Sanjeev Kumar    schedule 01.08.2014
comment
есть ли какие-либо спецификации для сообщения, такие как длина сообщения, допустимые символы и т. д.,   -  person Sanjeev Kumar    schedule 01.08.2014
comment
@МайкМ. наконец-то я нашел решение, на самом деле мы можем отправлять сообщения длиной не более 160 символов с помощью sendTextMessage(),   -  person Sanjeev Kumar    schedule 01.08.2014
comment
На телефонах с двумя SIM-картами, если по умолчанию для отправки смс не установлена ​​​​сим-карта, выдается ошибка RESULT_ERROR_GENERIC_FAILURE. Поэтому сим должен быть установлен как активный. Вы можете найти больше информации по этой ссылке! stackoverflow.com/questions/27351936/   -  person Abdul kadir    schedule 06.05.2017


Ответы (1)


я столкнулся с той же проблемой. но, наконец, нашел решение. если вы тестируете этот код в телефоне с двумя SIM-картами, тогда слот для SIM-карты 1 всегда остается активным, в противном случае возникает ошибка «нет обслуживания» inn pendingsententent.

person Kamal Bunkar    schedule 19.08.2015