public class SMSBroadcaster extends BroadcastReceiver {
private static SmsListener mListener;
Boolean b;
String abcd, xyz;
@Override
public void onReceive(Context context, Intent intent) {
Bundle data = intent.getExtras();
Object[] pdus = (Object[]) data.get("pdus");
for (int i = 0; i < pdus.length; i++) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
String sender = smsMessage.getDisplayOriginatingAddress();
String messageBody = smsMessage.getMessageBody();
abcd = messageBody.replaceAll("[^0-9]", "");
System.out.println("OTP received is" + abcd);
if (b == true) {
mListener.messageReceived(abcd);
} else {}
}
}
public static void bindListener(SmsListener listener) {
mListener = listener;
}
}
I am using this broadcaster in my code and also added the permission android permission RECEIVE SMS
I was able to get all SMS when I used read SMS permission but I do not want all SMS access. I just need the OTP for verification