Skip to content

Instantly share code, notes, and snippets.

@betiol
Last active June 20, 2017 20:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save betiol/07ede2aafa805a4fdafe92ba6472bb29 to your computer and use it in GitHub Desktop.
Save betiol/07ede2aafa805a4fdafe92ba6472bb29 to your computer and use it in GitHub Desktop.
intercept sms
public class SMSBackgroundService extends BroadcastReceiver {
public event EventHandler<String> OnCodeReceived;
public override void OnReceive(Context context, Android.Content.Intent intent) {
if ((intent.Action != "android.provider.Telephony.SMS_RECEIVED")) {
return;
}
SmsMessage[] smsMessages;
if ((((int)(Android.OS.Build.VERSION.SdkInt)) >= 19)) {
// KITKAT
smsMessages = Telephony.Sms.Intents.GetMessagesFromIntent(intent);
}
else {
var bundle = intent.Extras;
Java.Lang.Object[] pdus = ((Java.Lang.Object[])(bundle.Get("pdus")));
smsMessages = new SmsMessage[pdus.Length];
for (var i = 0; (i < smsMessages.Length); i++) {
smsMessages[i] = SmsMessage.CreateFromPdu(((byte[])(pdus[i])));
}
}
for (var i = 0; (i < smsMessages.Length); i++) {
var sms = smsMessages[i];
var body = sms.MessageBody;
body = body.Trim();
var matche = Regex.Match(body, "");
if (matche.Success) {
var group = matche.Groups["codigo"];
var code = group.Value;
OnCodeReceived?.Invoke(sms, code);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment