2012-03-05 3 views
14

Fino a ieri ho pensato che non fosse possibile inviare SMS in background senza utilizzare l'interfaccia IOS SMS (che molte persone assicurano anche qui). Tuttavia, oggi ho scaricato una nuova app chiamata SmartSender, che programma il tuo SMS e poi lo invia automaticamente.Invia SMS a livello di programmazione, senza la finestra del compositore SMS

L'ho provato e l'SMS non viene effettivamente inviato sullo sfondo, ma viene visualizzata una notifica locale e quando si fa clic su di esso per portare l'app in primo piano, l'SMS viene inviato automaticamente.

Come si può ottenere?

Forse Apple ha approvato l'app perché l'interfaccia è molto chiara su cosa stai facendo e cosa stai inviando, ma come puoi inviare SMS senza mostrare l'interfaccia?


Update: L'SMS programmato apparire sul mio cellulare messaggi app come inviato, quindi non credo che stanno utilizzando un altro servizio per inviare SMS, anche il telefono ricevente è indicato che l'SMS è stato inviato dal mio Telefono.


Update 2: OK sto usando e guardare l'applicazione facendo questo, quindi è possibile senza mostrare l'interfaccia predefinita, non sto chiedendo se questo può essere fatto o no. Lo sto utilizzando con tutte le connessioni Internet disattivate e il messaggio viene inviato da MY PHONE, quindi viene visualizzato nell'APP MESSAGGI. Pertanto l'app non utilizza alcun servizio di terze parti.


Aggiornamento 3: accetterò la mia risposta, in effetti non è possibile; tuttavia è stato quando la domanda è stata risolta. L'app in questione ha ora specificato nella sua descrizione che non funzionerà in iOS 6, quindi penso che Apple abbia corretto alcuni bug che potrebbero essere sfruttati per ottenere questa funzionalità.

+1

Non stanno utilizzando il proprio gateway SMS? – MrTJ

+0

Devono utilizzare il proprio gateway SMS per ottenere ciò e, una volta inviato l'sms, inviano una notifica all'utente. Ma non c'è modo di aggirare. A meno che tu non abbia intenzione di distribuire la tua app attraverso l'app store. –

+0

@RaphaelAyres, leggi la mia modifica per favore – htafoya

risposta

3

In effetti non è possibile; tuttavia è stato quando la domanda è stata risolta.

L'app in questione ha ora specificato nella sua descrizione che non funzionerà in IOS 6, quindi penso che Apple abbia corretto alcuni bug che potrebbero essere sfruttati per ottenere questa funzionalità.

2

È possibile utilizzare:

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

non funziona sul simulatore ... e non è possibile inviare programmazione SMS!

provata su iOS 6. <

+1

Questo non funziona più. Apple ha rimosso il supporto per evitare lo spamming degli sms e l'invio di sms indesiderati. –

+0

-1: Ho provato l'app menzionata dall'OP, e ** fa ** invia SMS in background. L'applicazione sms – yuji

+0

non è disponibile nel simulatore e non ci sono applicazioni che gestiscono questo URL, quindi non funziona nel simulatore .. ma funzionerà correttamente nel dispositivo in cui è disponibile un'app messaggi per gestire questo url lavoro in ios-6 come detto sopra) –

0

Non v'è alcun modo per inviare SMS di programmazione. Potresti voler indagare su un servizio di assistenza di terze parti per l'invio di SMS come Twilio.

+0

grazie, ma sto usando l'applicazione e guardandola funzionare senza connessione internet e senza mostrare l'interfaccia predefinita. – htafoya

+0

-1: Ho provato l'app citata dall'OP, e ** fa ** invia SMS in background. Viene anche inviato come iMessage dove applicabile, quindi sta chiaramente accadendo sul dispositivo, non su un servizio di terze parti. – yuji

5

Non è possibile inviare SMS a livello di programmazione in background, è possibile utilizzare le seguenti API di terze parti per inviare il messaggio di testo (SMS).

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

Vorrei suggerire nexmo, è facile da usare e supportare i messaggi internazionali anche.

+0

L'app non utilizza alcun servizio di terze parti, funziona senza connessione a Internet e i messaggi vengono inviati dal mio telefono come appaiono nell'app dei messaggi – htafoya

+0

-1: Ho provato l'app menzionata dall'OP, e ** fa ** invia SMS in background. – yuji

+0

@WildFire Sto provando con le implementazioni di twilio per inviare SMS in background, quindi verrà approvato da Apple quando lo invio per la revisione? qualche idea? – bhavin

6

Avendo provato l'app, posso verificare che lo compia gli sms a livello di programmazione, senza mostrare l'interfaccia SMS. E chiaramente non accade attraverso un servizio di terze parti, poiché il messaggio viene inviato come iMessage quando possibile.

è anche chiaro da tutte le altre risposte che non ci sono le API pubbliche per l'invio di SMS a livello di codice, per cui lo sviluppatore deve aver usato un privato API eppure in qualche modo intrufolato questa applicazione attraverso il processo di approvazione.

In particolare, sembra che abbia utilizzato l'API CoreTelephony. This post on SO descrive la procedura. A quanto pare avrai anche bisogno di mettere le mani sui file header di CoreTelephony da qualche parte.

+0

-1 per il tuo random -1 su questo thread e perché 'CTMessageCenter sendSMSWithText' è un ** private API **. _Se leggi altre risposte, puoi osservare che TUTTI gli utenti parlano di terze parti o di apici non documentati o di sms web-based e tu rispondi con un metodo non documentato ??_ Non c'è documentazione su CTMessageCenter: http://goo.gl/GWp85 – elp

+13

L'OP vuole sapere come SmartSender invia programmaticamente SMS. Se hai effettivamente provato l'app, sapresti che invia SMS a livello di programmazione. Nessuna delle altre risposte lo realizza, ed è per questo che le ho downvoted. La mia citazione di un'API privata è irrilevante. L'OP vuole sapere come inviare SMS a livello di codice e non c'è altro modo. Mi dispiace che tu abbia sentito il bisogno di downvotare la mia risposta solo perché sei arrabbiato, ma non è questo [che cosa sono i downvotes] (http://stackoverflow.com/privileges/vote-down). In futuro, spero che tu possa essere più maturo e votare in base al merito, non ai sentimenti personali. – yuji

5

Ho esaminato la limitazione di invio/ricezione di SMS su iOS per alcuni giorni, utilizzando iOS 6 e XCode 4.5 (più recenti al momento della scrittura). Ero curioso di conoscere questa applicazione SmartSender, quindi l'ho acquistata.

Non so se è perché l'ho provato solo su iOS 6, ma ottengo il controller dei messaggi standard (MFMessageComposeViewController) per inviare messaggi. Ho provato l'invio ritardato: ricevo il controller dei messaggi all'ora prestabilita e devo fare clic manualmente su Invia. Ho provato l'invio immediato - che apre il controller e devo anche fare clic manualmente su Invia. Se faccio clic su Annulla, l'app in realtà mi riporta al controller dei messaggi (non posso annullare a meno che non uccidi l'app!)

Quindi, questo è vero, questo permette di inserire messaggi da un'interfaccia utente personalizzata, ma poi il messaggio stesso viene copiato in MFMessageComposeViewController e questo è ciò che invia l'SMS. Approvato quindi App Store, ma nulla di simile a quello che stiamo cercando!

+0

Ok, grazie per i vostri commenti. Forse era un bug su IOS 5 e ora è stato corretto su IOS 6. – htafoya