Android Open Source - SmsAutoAnswer Sms Receiver






From Project

Back to project page SmsAutoAnswer.

License

The source code is released under:

MIT License

If you think the Android project SmsAutoAnswer listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.example.autosms;
//  w w  w . ja  v  a  2 s. c o m
import java.util.ArrayList;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage;
import android.widget.Toast;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
 
public class SmsReceiver extends BroadcastReceiver
{
  private static boolean activated=true;
  
  public static boolean changeStatus() {
    return SmsReceiver.activated=!SmsReceiver.activated;
  }
  
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        //---get the SMS message passed in---
      Log.v("SmsReceiver", "Received");
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;        
        String messageRecu;
        String messageAEnvoyer;
        String numTel;
        ArrayList<String> longMessage;
        if (bundle != null)
        {
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            //---display the new SMS message---
            SmsManager smsManager = SmsManager.getDefault();
            msgs = new SmsMessage[pdus.length];            
            for (int i=0; i<msgs.length; i++){
              messageAEnvoyer="";
              longMessage=new ArrayList<String>();
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                numTel=msgs[i].getOriginatingAddress();
                
                messageRecu = msgs[i].getMessageBody().toLowerCase().replaceAll(" ", "");
                if(messageRecu!=null) {
                  if(messageRecu.equals("programme")) {
                    messageAEnvoyer="Quelle catgorie ?\r\nAnimation\r\nCreat'If\r\nGeek\r\nEntreprise";
                  } else if(messageRecu.equals("animation")) {
                    messageAEnvoyer="Nous voulons organiser de nombreuses activits au cours de lanne : bien videmment continuer  organiser des lasergames et des bowlings. Mais nous mettrons en place de nouvelles activits : barathons, patinoires organises, sorties de dcouverte dans Lyon.";
                  }else if(messageRecu.equals("creat'if")) {
                  messageAEnvoyer="Pour ne pas ngliger les filles du dpart, nous organiserons des cours de NailArt. Mais nous mettrons aussi en place des cours de cuisine pour tous les lves du dpartement ! Stop aux ptes cordons bleus tous les soirs. Dcouvrez comment cuisiner quilibr  faible cout.";    
                  } else if(messageRecu.equals("geek")) {
                    messageAEnvoyer="Nous relancerons la LANIF, pour pouvoir jouer  toutes sortes de jeux et organiser des tournois avec des lots pour tous les participants ! Qui jouera  quoi ? Quelle quipe vaincra ?";
                  } else if(messageRecu.equals("entreprise")) {
              messageAEnvoyer="Nous organiserons des RIFS de folie : notre quipe entreprise est motive et nhsitera pas  contacter de nouvelles entreprises pour les compter parmi nous au cours de cet vnement cl pour la promo. Des start-ups aux grands groupes, vous naurez que lembarras du choix. Notre but cette anne : que plus de 60% des IFs aient une proposition de stage  l'issue des RIFs !";
                  } else {
                    messageAEnvoyer=devinette(messageRecu, numTel);
                  }
                  
                  if(!messageAEnvoyer.equals("")) {
                    longMessage=smsManager.divideMessage(messageAEnvoyer);
                    smsManager.sendMultipartTextMessage(numTel, null, longMessage, null, null);
                  }
                }    
            }
        }                         
    }
    
    public String devinette(String messageRecu, String numTel) {
      String messageAEnvoyer="";
      String devinette;
      PredictifData data = PredictifData.getInstance();
      if(messageRecu.equals("devinette")) {
        devinette = data.getRandom();
        if(devinette.equals("moi"))
        {
          messageAEnvoyer=caesar(numTel);
        }
        else
        {
          messageAEnvoyer=data.nomQuestion.get(devinette);
        }
          data.numDevinette.put(numTel, devinette);
      } else if(data.numDevinette.containsKey(numTel)){
          if(messageRecu.equals(data.numDevinette.get(numTel))){
            messageAEnvoyer="Great ! You did it.";
          } else if(messageRecu.equals("quitter")){
            messageAEnvoyer="Bye, you little shit.";
            data.numDevinette.remove(numTel);
          } else {
            //messageAEnvoyer="You failed";
          }
        }
      return messageAEnvoyer;
    }
    
    public String caesar(String text)
    {
      char[] chars = text.toCharArray();
        for (int i=0; i < text.length(); i++)
        {
            char c = chars[i];
            if (c >= 43 && c <= 57)
            {
              int x = c;
              Log.v("ASCII", Integer.toString(x));
                chars[i] = (char) (x + 64);
            }
        }
        return new String(chars);
    }
}




Java Source Code List

com.example.autosms.MainActivity.java
com.example.autosms.PredictifData.java
com.example.autosms.SmsReceiver.java