2011-06-23 2 views
-2

Ok, donc voici mon code source. Quelque chose continue de mal tourner et d'obtenir une erreur de fermeture de Force. Voici le code, quelqu'un peut me dire si je dois apporter des modifications ..Comment répondre automatiquement au texte?

J'ai 2 classes qui envoie le message et celui qui ... Ici, nous recieves allons ..

Mon premier des classes qui a une méthode pour envoyer un texte ..

import android.app.Activity; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.widget.Toast; 

public class InfoSender extends Activity { 
private smsListener smsReceiver; 
public String phoneNumber; 
public String message; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_menu); 
} 

    public void send(String phoneNumber, String message){ 

     phoneNumber = smsListener.phnNumber; 

      PendingIntent pi = PendingIntent.getActivity(this, 0, 
        new Intent(this, InfoSender.class), 0);     
       SmsManager sms = SmsManager.getDefault(); 
       sms.sendTextMessage(phoneNumber, null, message, pi, null); 

      Toast.makeText(getApplicationContext(), "Details about house "+housenumber+"sent", 6); 



      //Do nothing 
     } 

    } 

deuxième classe qui reçoit et répond automatiquement si un texte dit une certaine chose ..

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle bundle = intent.getExtras(); 
    SmsMessage[] msgs = null; 
    String msg = ""; 

    if(bundle != null){ 

    } 
    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 += "Sms from "+msgs[i].getDisplayOriginatingAddress(); 

     phnNumber = msgs[i].getOriginatingAddress(); 
     msgBody = msgs[i].getMessageBody().toString(); 
    } 

     if(msgBody.equalsIgnoreCase("0")){ 
      String phoneNumber = phnNumber; 
      String message = sender.message; 

     sender.send(phoneNumber, message); 
    } 
    } 

}

+0

Il serait utile si vous pouviez publier vos journaux de logcat pour voir ce que l'erreur est exactement. Vous pouvez activer logcat dans eclipse en allant dans (dans la barre de menu): Fenêtre-> Afficher la vue-> Autre-> Android-> Logcat. – Ryan

+2

sans décrire le contexte de ce code ou l'application que vous faites rend très difficile à suivre. – Phil

Répondre

0

Sans les journaux, c'est difficile à dire, mais vous avez probablement une permission. Vous devez disposer des autorisations définies dans votre manifeste pour envoyer, recevoir et lire et écrire.

Questions connexes