-
Instantiate a BroadcastReceiver in the activity you want to get your data to, for example:
private BroadcastReceiver mServiceReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { //Extract your data - better to use constants... String IncomingSms=intent.getStringExtra("incomingSms");// String phoneNumber=intent.getStringExtra("incomingPhoneNumber"); } };
-
Unregister your receiver on
onPause()
:@Override protected void onPause() { super.onPause(); try { if(mServiceReceiver != null){ unregisterReceiver(mServiceReceiver); } } catch (Exception e) { e.printStackTrace(); } }
-
Register it on
onResume()
:protected void onResume() { super.onResume(); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.SmsReceiver"); registerReceiver(mServiceReceiver , filter); }
-
Broadcast your data from the service via an Intent, for Example:
Intent i = new Intent("android.intent.action.SmsReceiver").putExtra("incomingSms", message); i.putExtra("incomingPhoneNumber", phoneNumber); context.sendBroadcast(i);
and that’s it! goodLuck!