1

This application support send a scheduled sms in background mode! How to they do that?
What do you think about this their info:

In order to send out the scheduled message:

  1. This app must be running on your iPhone, either in the background or in the foreground;
  2. Your iPhone must not be in the airplane mode;
  3. Your iPhone must have carrier's signal at the scheduled time;

NOTES:

  1. If you schedule a message with a large number of recipients, please check with your carrier for the maximum number of recipients allowed per message. If you exceed the maximum number allowed, your message may be blocked by your carrier.
  2. Your iPhone must be powered on at the scheduled time so that the message can be sent out;
  3. If you reboot your iPhone, or turn it off/on, remember to restart this app as soon as possible so that the timer can still be active.
Besi
  • 22,579
  • 24
  • 131
  • 223
hungbm06
  • 1,549
  • 6
  • 24
  • 32
  • Chances are their servers are sending the message, not the phone itself. It probably doesn't even appear to come from the phone's SMS number. – ceejayoz Jan 11 '12 at 17:01
  • Could be something with local notifications, but since its running, I'd assume something with NSThread / NSRunLoop – Richard J. Ross III Jan 11 '12 at 17:02
  • @ceejayoz I would think that, but why would the app have to be running for it to work then? – Richard J. Ross III Jan 11 '12 at 17:03
  • 2
    I'd imagine it needs to be running because they've set it up so the app triggers a request to their servers at a certain time. I know Apple doesn't give access to any sort of SMS sending API. – ceejayoz Jan 11 '12 at 17:03
  • @ceejayoz Not true, look at this question: http://stackoverflow.com/questions/10848/how-to-programmatically-send-sms-on-the-iphone Now, however, that requires user authentication, but still. If they have a server already, why not just schedule it server-side. That's what doesn't make sense to me. – Richard J. Ross III Jan 11 '12 at 17:06
  • @RichardJ.RossIII That API doesn't let you send an SMS programmatically, it just brings up the SMS interface. – ceejayoz Jan 11 '12 at 17:15

2 Answers2

0

Your best bet is to setup an intermediate server on the internet that uses an online SMS sending service, and send the SMSs via that route if you need complete automation. (ie, your program on the iPhone sends a UDP packet to your server, which sends the real SMS)

Rajneesh071
  • 30,846
  • 15
  • 61
  • 74
0

Some results from testing...confirms this app is sending normal SMS WITHOUT user interaction!

  1. WLAN ON + GSM OFF (no reception) => the app does NOT send SMS, even after reception is back no SMS gets send. In the phone's messages log it tells "failed sending SMS"

  2. WLAN OFF + GSM ON => the app sends SMS without user interaction (I checked my bill, and in fact a SMS got sent through the provider! - no data traffic to a server!)

Also, by the way when the SMS is received the sender's SMS number is displayed correctly. I know one could do this through a SMS server - but in fact a REAL SMS got sent through the provider! There was no data traffic, no other cost than my providers SMS charge, and on the past activities it explicitly showed this SMS!

So somehow this app sends a real SMS without user confirmation.

Probably there is a way to use the direct SMS library without Apple's review team finding out? Anyway I know for sure, that Apple rejects apps that use this library (if they find out!)

user387184
  • 10,953
  • 12
  • 77
  • 147