Androidiani.com

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

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:

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:

Successivamente andrà creato il messaggio:

e infine, inviare fisicamente l’SMS/MMS:

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 .