Witam,
Próbuje napisać program, który w momencie odebrania sms będzie wyświetlał numer telefonu i treść w głównej aktywności. Moje pytanie brzmi w jaki sposób przesłać z BroadcastReceiver do Activity. To moje początki więc proszę o wyrozumiałość :)
public class SmsReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras == null)
return;
// Toast.makeText(context,"Recieved",Toast.LENGTH_LONG).show();
Object[] pdus = (Object[]) extras.get("pdus");
for (int i = 0; i > pdus.length; i++) {
SmsMessage SMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
String sender = SMessage.getOriginatingAddress();
String body = SMessage.getMessageBody().toString();
Intent in = new Intent("SmsMessage.intent.MAIN").
putExtra("get_msg", sender+":"+body);
context.sendBroadcast(in);
}
}
}
public class Maps extends Activity {
BroadcastReceiver mIntentReceiver;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
IntentFilter intentFilter = new IntentFilter("SmsMessage.intent.MAIN");
mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String msg = intent.getStringExtra("get_msg");
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
};
this.registerReceiver(mIntentReceiver, intentFilter);
}
@Override
protected void onStop() {
super.onStop();
this.unregisterReceiver(this.mIntentReceiver);
}
}