Reputation: 101
I want to write an app that will do something when it received a message. I have google for answer for many days and found some solution like this one: Link but it is not working on android 6 or marshmallow at all. So is there a way to wake up my app to do something whenever it received a message on android marshmallow?
Upvotes: 1
Views: 389
Reputation: 951
Below example work for me in MM also
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(intent.getAction())) {
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Logger.e("sender Num" + senderNum);
Logger.e("message" + message);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
};
IntentFilter filter = new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION);
registerReceiver(broadcastReceiver, filter);
onDestroy method unregister broadcast receiver
unregisterReceiver(broadcastReceiver);
Upvotes: 1