2017-09-25 2 views
-1

Ich erstelle eine einfache Android-Anwendung, in der ich versuche, eingehende SMS-Nachrichten abzufangen. Das Problem, das ich habe, ist, dass die Toastnachrichten vom onReceive nicht auftauchen. Bitte helfen Sie!Toast wird nicht in SMS angezeigt. Android-App empfangen

Danke,

Isaiah Thompson

public class SMSR extends BroadcastReceiver 
{ 
@Override 
public void onReceive(Context context, Intent intent) 
{ 
    //Print Message 
    Toast.makeText(context,"Received Message Start",Toast.LENGTH_SHORT).show(); 

    // Get the data (SMS data) bound to intent 
    Bundle bundle = intent.getExtras(); 

    SmsMessage[] msgs = null; 

    String str = ""; 

    if (bundle != null) { 
     // Retrieve the SMS Messages received 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length]; 

     // For every SMS message received 
     for (int i = 0; i < msgs.length; i++) { 
      // Convert Object array 
      msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      // Sender's phone number 
      str += "SMS from " + msgs[i].getOriginatingAddress() + " : "; 
      // Fetch the text message 
      str += msgs[i].getMessageBody().toString(); 
      // Newline <img draggable="false" class="emoji" alt="" src="https://s.w.org/images/core/emoji/72x72/1f642.png"> 
      str += "\n"; 
     } 
    } 


    //Print Message 
    Toast.makeText(context,"Received Message End",Toast.LENGTH_SHORT).show(); 
    Toast.makeText(context,str,Toast.LENGTH_SHORT).show(); 
} 

}

+0

nicht 'Toast' für die Fehlersuche anwenden. Verwenden Sie stattdessen "Log.d". Auch - sind Sie sicher, dass Sie die SMS erhalten – Rahel

+0

Es gibt viele bewegliche Teile. Überprüfen Sie diese Antwort für eine detaillierte Anleitung. https://StackOverflow.com/a/11436473/6051131 – Rahel

+0

Ich glaube nicht, dass ich SMS-Nachrichten empfange. Wenn ich einen Testtext sende, scheint die App ihn nicht abzufangen, jedoch glaube ich, dass der obige Code der richtige Weg ist. –

Antwort

2

dieses ausprobieren

new Handler(Looper.getMainLooper()).post(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     Toast.makeText(context, R.string.sent, Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

Vielen Dank für Ihre Antwort. –

Verwandte Themen