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)
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 .