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 .

 

 

Loading...
Social Media Auto Publish Powered By : XYZScripts.com