2013-12-10 4 views
7

La mia app Android utilizza gli SMS per inviare notifiche silenziose. Prima di Kitkat queste notifiche non venivano registrate nel provider SMS e quindi non comparivano negli elenchi di conversazioni dell'utente. Questo è il comportamento desiderato dell'app.Come inviare un SMS in Android Kitkat dall'app non predefinita senza scrivere al provider SMS

Con le modifiche di Kitkat SMS (fare riferimento alla documentazione di SmsManger riportata di seguito) questi messaggi vengono ancora inviati, ma vengono ora scritti automaticamente al provider SMS e quindi compaiono negli elenchi di conversazioni dell'utente. Questo non è auspicabile per la mia app.

Cominciando con Android 4.4 (API di livello 19), se e solo se l'applicazione non è selezionato come app SMS predefinita, il sistema scrive automaticamente i messaggi inviati tramite questo metodo per il provider SMS (l'applicazione predefinita SMS è sempre responsabile della scrittura dei messaggi inviati al provider SMS). Per informazioni su come comportarsi come l'app SMS predefinita, vedere Telefonia.

Sembra che potrei impedire la scrittura automatica al provider rendendo l'app predefinita e quindi non scrivendo al provider. Tuttavia, questa sarebbe una terribile esperienza utente nel contesto della mia app, quindi la considererei solo un'ultima risorsa.

La mia domanda è allora - c'è un modo per silenziosamente inviare SMS in Kitkat senza mia app dover essere l'applicazione di default?

Ho letto le risposte a questa domanda Send SMS message using non default SMS app on Android 4.4 ma ciò è più preoccupante per garantire che i messaggi siano scritti nel provider. Non lo voglio

risposta

0

Risposta breve no.

Risposta lunga:

Ci sono in realtà opzioni, ma si tratta di un sacco di lavoro. Uno è quello di scaricare il codice sorgente per aosp e modificare mms.apk per consentirgli di ricevere intenti dalla tua app per inviare sms senza scrivere al provider.

Un altro modo è per baksmali l'applicazione sms predefinita del telefono e aggiungere un codice smali che ti consentirebbe di fare lo stesso come sopra. Ciò richiederebbe una conoscenza tecnica degli apali smali e di decompilazione/ricompilazione.

Detto questo, ci sono problemi che si presenteranno come se l'utente del telefono decidesse di utilizzare un'applicazione sms/mms di terze parti per le loro esigenze di messaggistica brevi.