Autore Topic: service cattura evento invio sms... come???  (Letto 1504 volte)

Offline raffys88

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Ideos
service cattura evento invio sms... come???
« il: 17 Dicembre 2013, 23:40:28 CET »
0
Salve devo realizzare un service che sia in grado di catturare l'evento "Invio SMS" e di conseguenza avviare un azione.
Sono riuscito ad implementare la situazione duale, ossia avviare un azione quando ricevo un SMS, ma non riesco ad avviare l'azione quando l'utente invio un SMS.

La ricezione dell SMS l'ho fatta con il broadcast receive...

l'invio invece come potrei catturarlo???

Offline marcusfenixx

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7
Re:service cattura evento invio sms... come???
« Risposta #1 il: 19 Dicembre 2013, 09:53:54 CET »
0
prova questo preso da stackoverflow

Codice (Java): [Seleziona]
public class SmsListener extends BroadcastReceiver{

    private SharedPreferences preferences;

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub

        if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
            Bundle bundle = intent.getExtras();           //---get the SMS message passed in---
            SmsMessage[] msgs = null;
            String msg_from;
            if (bundle != null){
                //---retrieve the SMS message received---
                try{
                    Object[] pdus = (Object[]) bundle.get("pdus");
                    msgs = new SmsMessage[pdus.length];
                    for(int i=0; i<msgs.length; i++){
                        msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                        msg_from = msgs[i].getOriginatingAddress();
                        String msgBody = msgs[i].getMessageBody();
                    }
                }catch(Exception e){
//                            Log.d("Exception caught",e.getMessage());
                }
            }
        }
    }
}

Note: nel filemanifest  aggiungi BroadcastReceiver-

Codice (XML): [Seleziona]
<receiver android:name=".listener.SmsListener">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
e ovviamente aggiungi i permessi

Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.RECEIVE_SMS" />
questo e per la ricezione ma lo puoi applicare benissimo anche all'invio cambiando i permessi e alcune cosine
« Ultima modifica: 19 Dicembre 2013, 09:55:52 CET da marcusfenixx »

Offline raffys88

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Ideos
Re:service cattura evento invio sms... come???
« Risposta #2 il: 19 Dicembre 2013, 09:58:01 CET »
0
ciao si questo codice è simile a quello che utilizzo per la ricezione...
avevo provato anche io a fare "il duale" ma non funzione...
invece di receive facevo send...

Offline marcusfenixx

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7

Offline raffys88

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Ideos
Re:service cattura evento invio sms... come???
« Risposta #4 il: 19 Dicembre 2013, 10:04:46 CET »
0
si , grazie avevo gia dato un occhiata veloce a quel sito...
il link ke hai postato tu fa comunque riferimento sempre ai messaggi ricevuti e non inviati

Post unito: 19 Dicembre 2013, 10:05:57 CET
io pensavo di utilizzare questo

Telephony.Sms.Sent | Android Developers

ma non ci sta scritto nulla...e quindi non ho idea di come utilizzarlo

iClaude

  • Visitatore
Re:service cattura evento invio sms... come???
« Risposta #5 il: 22 Dicembre 2013, 14:31:09 CET »
0
Ma devi catturare un SMS inviato dalla tua app o dall'app di sistema?
« Ultima modifica: 22 Dicembre 2013, 14:34:18 CET da iClaude »