Отправляйте СМС программно, без окна составителя СМС - PullRequest
15 голосов
/ 05 марта 2012

До вчерашнего дня я думал, что невозможно отправить фоновое SMS без использования SMS-интерфейса IOS (что многие здесь также уверяют).Однако сегодня я скачал новое приложение под названием SmartSender, которое планирует ваше SMS-сообщение, а затем отправляет его автоматически.

Я проверил его, и SMS на самом деле не отправляется в фоновом режиме, но появляется локальное уведомление, и когда вы нажимаете начтобы вывести приложение на передний план, SMS отправляется автоматически.

Как этого можно достичь?

Может быть, Apple одобрила приложение, потому что интерфейс очень понятен в том, что вы делаете и что выотправляются, но как вы можете отправить SMS, не показывая интерфейс?


Обновление: запланированные SMS отображаются в приложении "Сообщения" моего телефона как отправленные, поэтому я не думаю, что они используют другую службу дляотправьте SMS, также на телефоне получателя указано, что SMS было отправлено с моего телефона.


Обновление 2: ОК. Я использую и наблюдаю за тем, как это делает приложение, поэтому ЭТО ВОЗМОЖНО, не показывая значение по умолчанию.интерфейс, я не спрашиваю, можно ли это сделать или нет.Я использую его, когда все интернет-соединения выключены, и сообщение отправляется с МОЕГО ТЕЛЕФОНА, поэтому оно появляется на СООБЩЕНИИ.Таким образом, приложение не использует какой-либо сторонний сервис.


Обновление 3: я приму свой собственный ответ, фактически это невозможно;однако это было, когда на вопрос был дан ответ.Данное приложение теперь указало в своем описании, что оно не будет работать в iOS 6, поэтому я думаю, что Apple исправила некоторую ошибку, которую можно использовать для достижения этой функциональности.

Ответы [ 6 ]

7 голосов
/ 07 марта 2012

Попробовав приложение, я могу убедиться, что оно отправляет программно, без отображения интерфейса SMS. И это явно не происходит через сторонние службы, так как сообщение отправляется как iMessage, когда это возможно.

Из всех других ответов также ясно, что не существует общедоступных API-интерфейсов для программной отправки SMS, поэтому разработчик должен был использовать закрытый API-интерфейс и каким-то образом использовать это приложение в процессе утверждения.

В частности, похоже, что он использовал CoreTelephony API. Этот пост на SO описывает процедуру. Очевидно, вам также понадобится где-нибудь получить заголовочные файлы CoreTelephony.

5 голосов
/ 23 сентября 2012

Я изучал ограничение отправки и получения SMS на iOS в течение нескольких дней, используя iOS 6 и XCode 4.5 (последний на момент написания).Мне было интересно узнать об этом приложении SmartSender, поэтому я приобрел его.

Я не знаю, так ли это, потому что я попробовал это только на iOS 6, но я получаю стандартный контроллер сообщений (MFMessageComposeViewController) для отправки сообщений.Я попытался отложить отправку - я получаю контроллер сообщений в указанное время и должен вручную нажать кнопку Отправить.Я попробовал немедленную отправку - это выскакивает контроллер, и я также должен вручную нажать кнопку Отправить.Если я нажимаю кнопку Отмена, приложение фактически возвращает меня обратно в контроллер сообщений (я не могу отменить, пока не убью приложение!)

Так что это правда, это позволяет вводить сообщения из пользовательского интерфейса, но затемсамо сообщение копируется в MFMessageComposeViewController, и именно это отправляет SMS.Итак, App Store одобрен, но ничего похожего на то, что мы все ищем!

5 голосов
/ 05 марта 2012

Вы не можете отправлять SMS программно в фоновом режиме, вы можете использовать следующий сторонний API для отправки текстового сообщения (SMS).

  1. http://www.twilio.com/
  2. http://www.nexmo.com/
  3. https://www.tropo.com/

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

3 голосов
/ 30 октября 2012

На самом деле это невозможно; однако это было, когда на вопрос был дан ответ.

Соответствующее приложение теперь указало в своем описании, что оно не будет работать под IOS 6, поэтому я думаю, что Apple исправила некоторую ошибку, которую можно использовать для достижения этой функциональности.

2 голосов
/ 05 марта 2012

Вы можете использовать:

[[UIApplication sharedApplication] openURL: @"sms:+3912345678"];

это не работает на симуляторе ... и вы не можете программно отправить смс!

Проверено на iOS <6. </p>

0 голосов
/ 05 марта 2012

Нет возможности отправить СМС программно.Возможно, вы захотите исследовать стороннюю сервисную службу для отправки SMS, например Twilio.

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