Libreria Open Source per invio e ricezione SMS/MMS [Androidiani Developers]

30 agosto 201316 commenti
Tutti voi conoscerete Sliding Messaging, app divenuta famosa per essere "gesture based". Il suo ideatore, Jacob Klinker a.k.a klinkdawg, ha deciso di creare una libreria dedicata all'invio e ricezione degli SMS/MMS, semplificando il lavoro a quegli sviluppatori che stanno progettando applicazioni di messaggistica.

La libreria è ancora in fase beta e lo sviluppatore sta apportando diverse migliorie e introducendo nuove funzionalità, per renderla più flessibile ai bisogni degli sviluppatori, e ovviamente, chiunque ne sia in grado, può contribuire allo sviluppo.

Features:

Configurare l’invio e la ricezione dei messaggi è molto semplice, basterà creare un oggetto “Settings” contenente le impostazioni. Le opzioni possibili sono le seguenti:

  • impostazione del provider per l’invio di MMS
  • il proxy
  • la porta di invio/ricezione
  • gruppo ( per abilitare o disabilitare l’invio di MMS/SMS a piu’ persone, creando un gruppo nell’applicazione o mantenendo ogni destinatario separato)
  • “WifiMmsFix” che disabiliterà la connessione WiFi durante l’invio dell’MMS
  • possibilità di scegliere se inviare i messaggi attraverso Google Voice o tramite il servizio SMS “classico”
  • possibilità di abilitare o disabilitare il servizio di reporting di messaggio ricevuto
  • dividere l’SMS in piu’ messaggi una volta superati i 160 caratteri
  • aggiungere un contatore per i messaggi “splittati”, ossia verrà visualizzata la dicitura “messaggio 1/3″
  • “Strip unicode” per la rimozione di caratteri non supportati ( i caratteri unicode generano un “consumo” di piu’ caratteri, per esempio la “è” )
  • possibilità di impostare una firma per i messaggi inviati
  • convertire i messaggi SMS troppo lunghi in MMS
  • impostare il limite oltre il quale, i messaggi “splittati” verranno convertiti ad MMS
  • impostazione dell’account Google per l’utilizzo di Google Voice
  • impostazione del codice RnrSe, codice necessario per l’invio/ricezione tramite i servizi Google ( lasciando il campo vuoto, la libreria provvederà ogni volta a impostarne uno facendo richiesta al server)

sms-settings

Come noterete, molte delle impostazioni sono semplici booleane o numeri interi, quindi sarà anche semplice integrare una PreferenceActivity o un PreferenceFragment per lasciare che sia l’utente a impostare i propri valori (ecceziona fatta per provider, proxy, porta e codice RnrSe, ma è comunque una scelta dello sviluppatore)

una volta scritte le impostazioni sarà necessario allegare queste ultime al sender, quindi:

sms-sender

Successivamente andrà creato il messaggio:

sms-create

e infine, inviare fisicamente l’SMS/MMS:

sms-send

Va fatto notare che threadId , potrà essere lasciato vuoto o “null”, di conseguenza l’applicazione creerà un nuovo thread invece che raggruppare i messaggi diretti allo stesso destinatario.

La libreria ha anche bisogno che vengano impostati alcuni receivers nel manifest :

<receiver android:name="com.klinker.android.send_message.SentReceiver" >
    <intent-filter>
        <action android:name="com.klinker.android.send_message.SMS_SENT" />
    </intent-filter> 
</receiver>

<receiver android:name="com.klinker.android.send_message.DeliveredReceiver" >
    <intent-filter>
                <action android:name="com.klinker.android.send_message.SMS_DELIVERED" />
    </intent-filter> 
</receiver>

Andranno inoltre aggiunti alcuni permessi:

<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.provider.Telephony.SMS_RECEIVED" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

Per qualsiasi altra informazione o dubbio vi rimando al Thread originale su  XDA e al relativo progetto su GitHub .

 

 

  • Pingback: Libreria Open Source per invio e ricezione SMS/MMS [Androidiani Developers] | Crazyworlds

  • and1

    Io da utente medio alto di informatica ci capisco poco e non ho capito bene a cosa dovrebbe servire.

    • davide136

      Medio basso..

      • and1

        Almeno rispondi visto che sembri saperne di piu , coglione…

        • giacomofurlan

          Scrivere parolacce non ti aiuterà mai nella vita. A prescindere, ha ragione davide136: le feature sono molto chiare, quindi se non capisci vuol dire che tuo livello di informatica / programmazione non è poi così alto (no, l’ECDL in realtà non serve a nulla).

          Il fatto, comunque, è che la API Android di base già permettono un controllo semplice sugli SMS/MMS (ho provato di persona a creare un’applicazione che invia/riceve messaggi del genere senza troppe difficoltà)… questo sembra piuttosto un arrangiamento per una differente visione di programmazione (molto comune nonostante si utilizzi una programmazione orientata ad oggetti).

        • sandruzz

          Cazzo s31 davv3ro un duro, tu

      • leo

        io invece da utente bassissimo ahahahaha…non ci capisco una mazza :D
        davide a cosa serve??

    • Rasheed

      Non serve agli utenti, ma è una libreria che potrebbe esser utilizzata da un programmatore /progettista di app

      • and1

        Sarebbe a dire inutile al publico e notizia poco sensata per un blog…

        • Rasheed

          Su questo potrestiaver rragione

    • Anon

      Ellamadonna, e che sei utente medio alto di informatica. Se eri medio-basso arrivavi appena al concetto di imput/output.

      • FAbio

        iMput! xD

      • sandruzz

        E’ un utente medio-stronzo, direi

        • and1

          E tu medio cornutt…

  • Pingback: Libreria Open Source per invio e ricezione SMS/...

  • riccaprince71

    Salve scienziati ;)..
    Entrare nel forum e leggere di alto linguaggio da bettola mi toglie intrresse . Imparate a parlare prima di esprimerv come i burundianalfabeti.Grazie