My app uses a BroadcastReceiver to get sms in this way:
SmsBR.java
public class SmsBR extends BroadcastReceiver {
@Override
First remove receiver tag from manifest, then: for service :
@Override
public void onCreate() {
myReceiver = new SmsBR();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.SMS_RECEIVED");// add any actions you want
registerReceiver(myReceiver , filter);
}
@Override
public void onDestroy() {
super.onDestroy();
if (myReceiver != null)
unregisterReceiver(myReceiver);
}
for Activity:
public class MyActivity extends Activity {
private final BroadcastReceiver mybroadcast = new SmsBR();
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(mybroadcast, filter);
}
public void onPause() {
super.onPause();
if (mybroadcast!= null)
unregisterReceiver(mybroadcast);
}
}