• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

SMS Receiver rubbishness :p

Hi Guys...

Code:
package net.learn2develop.SMSMessaging;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SMSReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent) 
    {
        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;
        String str = "";            
        if (bundle != null)
        {
            //---retrieve the SMS message received---
            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]);                
                str += "SMS from " + msgs[i].getOriginatingAddress();                     
                str += " :";
                str += msgs[i].getMessageBody().toString();
                str += "\n";        
            }
            //---display the new SMS message---
            Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
        }                         
    }
}

why doesnt this work!? I installed it on my Dell Streak, received an SMS and nothing... I have added the Receiver tag in the manifest file as well...

please help I am going to college in 4 weeks to learn mobile development and am trying to get a heads up on it before I start but this simple app is taking the mick :(

Thanks,

Gordy
 
Hey. I use this code to receive new sms:

Manifest broadcastreceiver tag:
Code:
<receiver android:name=".SMSHandlerBR">
        	<intent-filter>
        		<action android:name="android.provider.Telephony.SMS_RECEIVED" />
        	</intent-filter>
        </receiver>

SMSHandlerBR.java:
Code:
package SMSHandler;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SMSHandlerBR extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Bundle bundle = intent.getExtras();

        if (bundle != null)
        {
            Object[] pdus = (Object[])bundle.get("pdus");
            SmsMessage[] msgs = new SmsMessage[pdus.length];

            for (int i = 0; i < msgs.length; i++)
            {
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

                try
                {
                    Intent in = new Intent(context, SMSHandlerDialog.class);
                    in.putExtra("number", msgs[i].getOriginatingAddress());
                    in.putExtra("message", msgs[i].getMessageBody().toString());
                    in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    context.startActivity(in);
                }
                catch (Exception ex) { Toast.makeText(context, "Get sms exception: " + ex.getMessage(), Toast.LENGTH_LONG).show(); }
            }
        }
    }
}

This works well for me
 
Back
Top Bottom