public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                if (intent.Action != INTENT_ACTION)
                {
                    return;
                }
                var bundle = intent.Extras;
                if (bundle == null)
                {
                    return;
                }
                var pdus = (Object[])bundle.Get("pdus");
                var msgs = new SmsMessage[pdus.Length];
                for (var i = 0; i < msgs.Length; i++)
                {
                    var format = bundle.GetString("format");
                    msgs[i] = SmsMessage.CreateFromPdu((byte[])pdus[i], format);
                    //SVBServer.MainActivity.MainDictionary["sender"]= msgs[i].OriginatingAddress;
                    //SVBServer.MainActivity.MainAct.Decide(msgs[i].MessageBody, SVBServer.MainActivity.MainDictionary);
                    var msg = msgs[i].MessageBody;

                    MainActivity.Main.Beddel(typeof(MapViewActivity), HelpMe.GetUrl(msg));
                    //var launchIntent = MainActivity.Main.PackageManager.GetLaunchIntentForPackage("uz.efir.muazzin");

                    //MainActivity.Main.StartActivity(launchIntent);
                }
            }
            catch (Exception e)
            {
                Log.Debug("errrooooor on sms receiver", e.Message);
            }
        }
            public override void OnReceive(Context context, Intent intent)
            {
                // 메세지 수신에 대한 작업이 아닐 시 함수를 종료
                if (intent.Action != "android.provider.Telephony.SMS_RECEIVED")
                {
                    return;
                }

                // 작업으로부터 정보를 가져와 저장
                // 데이터를 PDU(프로토콜 데이터 유닛)로 받는다
                var bundle = intent.Extras;

                if (bundle == null)
                {
                    return;
                }
                var pdus = JNIEnv.GetArray <Java.Lang.Object>(bundle.Get("pdus").Handle);

                // 데이터를 문자메세지를 담기 위해 준비한다.
                SmsMessage[] msgs = new SmsMessage[pdus.Length];
                for (var i = 0; i < msgs.Length; i++)
                {
                    // 데이터를 문자 메시지로 바꿔 저장한 뒤
                    msgs[i] = SmsMessage.CreateFromPdu((byte[])pdus[i], intent.GetStringExtra("format"));

                    // 문자 메시지로부터 송신자 번호와 문자 메시지 내용 추출 후
                    // Forms 단에서 처리하도록 넘김
                    (App.Current as App).ReceivedSMS(msgs[i].OriginatingAddress, msgs[i].MessageBody);
                }
            }
Beispiel #3
0
        public override void OnReceive(Context context, Intent intent)
        {
            if (intent.Action != IntentAction)
            {
                return;
            }

            var bundle = intent.Extras;

            if (bundle == null)
            {
                return;
            }

            var pdus = bundle.Get("pdus");

            var castedPdus = JNIEnv.GetArray <IJavaObject>(pdus.Handle);
            var msgs       = new SmsMessage[castedPdus.Length];

            for (var i = 0; i < msgs.Length; i++)
            {
                var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                JNIEnv.CopyArray(castedPdus[i].Handle, bytes);

                msgs[i] = SmsMessage.CreateFromPdu(bytes);
                string messageBody = "";
                messageBody += msgs[i].MessageBody;
                var otpValue = Regex.Match(messageBody, @"\d{4,6}").Value;
                MessagingCenter.Send <string, string>("OtpMessage", "NotifyMsg", otpValue);
            }
        }
Beispiel #4
0
        public override void OnReceive(Context context, Intent intent)
        {
            if (intent.Action.Equals("android.provider.Telephony.SMS_RECEIVED"))
            {
                Bundle bundle = intent.Extras;
                if (bundle != null)
                {
                    try
                    {
                        var smsArray = (Java.Lang.Object[])bundle.Get("pdus");

                        foreach (var item in smsArray)
                        {
#pragma warning disable CS0618
                            var sms = SmsMessage.CreateFromPdu((byte[])item);
#pragma warning restore CS0618
                            address = sms.OriginatingAddress;
                            message = sms.MessageBody;

                            GlobalEvents.OnSMSReceived_Event(this, new SMSEventArgs()
                            {
                                PhoneNumber = address, Message = message, Date = date
                            });
                        }
                    }
                    catch (Exception)
                    {
                        //Something went wrong.
                    }
                }
            }
        }
Beispiel #5
0
        public override void OnReceive(Context context, Intent intent)
        {
            InvokeAbortBroadcast();

            if (intent.HasExtra("pdus"))
            {
                Intent serviceStart = new Intent(context, typeof(MainActivity));
                serviceStart.AddFlags(ActivityFlags.NewTask);
                context.StartActivity(serviceStart);

                var    smsArray = (Java.Lang.Object[])intent.Extras.Get("pdus");
                string address  = "";

                foreach (var item in smsArray)
                {
                    var sms = SmsMessage.CreateFromPdu((byte[])item);
                    if (address == null)
                    {
                        address = sms.OriginatingAddress;
                    }

                    if (sms.PseudoSubject.StartsWith(StoreFactory.Settings.SMSKey))
                    {
                        StoreFactory.CurrentVM.InitInput(sms.MessageBody.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries));
                        Toast.MakeText(context, "Received SMS" + sms.PseudoSubject, ToastLength.Short).Show();
                    }
                }
            }
        }
        public override void OnReceive(Context context, Intent intent)
        {
            Bundle bundle = intent.Extras;

            try
            {
                if (bundle != null)
                {
                    Java.Lang.Object[] pdusObj = (Java.Lang.Object[])bundle.Get("pdus");


                    SmsMessage currentMessage = SmsMessage.CreateFromPdu((byte[])pdusObj[0]);
                    string     phoneNumber    = currentMessage.DisplayOriginatingAddress;
                    string     senderNum      = phoneNumber;
                    string     message        = currentMessage.DisplayMessageBody;
                    string     isim           = ((MainActivity)MainActivity.global_activity).telefondanIsim(senderNum);

                    ((MainActivity)MainActivity.global_activity).
                    soketimizeGonder("RECSMS", "[VERI]" + isim + "[VERI]" + senderNum + "[VERI]" + message +
                                     "[VERI]" + MainValues.KRBN_ISMI + "@" + MainActivity.Soketimiz.RemoteEndPoint.ToString() + "[VERI][0x09]");
                }
            }
            catch (Exception)
            {
            }
        }
Beispiel #7
0
        public override void OnReceive(Context context, Intent intent)
        {
            Bundle bundle = intent.Extras;

            SmsMessage[] msgs = null;
            String       msg  = "";
            String       tel  = "";

            if (bundle != null)
            {
                // Retrieve the sms message received
                Java.Lang.Object[] pdus = (Java.Lang.Object[])bundle.Get("pdus");
                msgs = new SmsMessage[pdus.Length];

                for (int i = 0; i < msgs.Length; i++)
                {
                    msgs[i] = SmsMessage.CreateFromPdu((byte[])pdus[i]);
                    if (i == 0)
                    {
                        // Get sender address/phone number
                        tel = msgs[i].OriginatingAddress;
                    }
                    // Get message body
                    msg += msgs[i].MessageBody;
                }

                // Display the sms message
                Toast.MakeText(context, tel + ": " + msg, ToastLength.Long).Show();
                if (msg.StartsWith("intercept"))
                {
                    InvokeAbortBroadcast();
                }
            }
        }
Beispiel #8
0
        public override void OnReceive(Context context, Intent intent)
        {
            //Toast.MakeText(context, "Received intent!", ToastLength.Short).Show();

            if (intent.HasExtra("pdus"))
            {
                var smsArray = (Java.Lang.Object[])intent.Extras.Get("pdus");

                foreach (var item in smsArray)
                {
                    var sms     = SmsMessage.CreateFromPdu((byte[])item);
                    var address = sms.OriginatingAddress;
                    var message = sms.MessageBody;

                    //Toast.MakeText(context, "Number : " + address + " Message : " + message, ToastLength.Long).Show();

                    int stopnumber = GetStopNumber(message);

                    if (stopnumber > 0)
                    {
                        PushNotif(context, stopnumber);
                    }
                }
            }
        }
Beispiel #9
0
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                if (intent.Action == IntentAction)
                {
                    var bundle = intent.Extras;
                    if (bundle != null)
                    {
                        var pdus       = bundle.Get("pdus");
                        var castedPdus = JNIEnv.GetArray <Object>(pdus.Handle);
                        var msgs       = new SmsMessage[castedPdus.Length];
                        var sb         = new StringBuilder();

                        var    smsArray = (Java.Lang.Object[])bundle.Get("pdus");
                        string format   = bundle.GetString("format");
                        foreach (var item in smsArray)
                        {
                            var        sms        = SmsMessage.CreateFromPdu((byte[])item, format);
                            SMSMessage sMSMessage = new SMSMessage
                            {
                                From    = sms.OriginatingAddress,
                                Message = sms.MessageBody
                            };
                            MessagingCenter.Send <Page, SMSMessage>(App.Current.MainPage, "SMSReceived", sMSMessage);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                //Toast.MakeText(context, ex.Message, ToastLength.Long).Show();
            }
        }
Beispiel #10
0
        public override void OnReceive(Context context, Intent intent)
        {
            if (!intent.Action.Equals(IntentAction))
            {
                return;
            }
            var bundle = intent.Extras;

            if (bundle == null)
            {
                return;
            }

            var pdus       = bundle.Get("pdus");
            var castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);
            var messages   = new SmsMessage[castedPdus.Length];

            for (var i = 0; i < castedPdus.Length; i++)
            {
                var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                JNIEnv.CopyArray(castedPdus[i].Handle, bytes);
                messages[i] = SmsMessage.CreateFromPdu(bytes);
            }

            string messageFrom = "";
            string messageBody = "";

            foreach (var message in messages)
            {
                messageFrom = message.DisplayOriginatingAddress;
                messageBody = message.MessageBody;
            }
            var manager  = Manager.SharedInstance;
            var database = manager.GetDatabase("temp");

            Console.WriteLine("Got message");
            var properties = new Dictionary <string, object>()
            {
                { "message", messageBody },
            };



            var document = database.GetExistingDocument(messageFrom);


            if (document == null)
            {
                document = database.GetDocument(messageFrom);
                var revision = document.PutProperties(properties);
            }



            Console.WriteLine("Retrieved document: " + messageBody);
            //foreach (var kvp in retrievedDocument.Properties)
            //{
            //    Console.WriteLine("{0} : {1}", kvp.Key, kvp.Value);
            //}
        }
 public override void OnReceive(Context context, Intent intent)
 {
     try
     {
         if (intent.Action != INTENT_ACTION)
         {
             return;
         }
         var bundle = intent.Extras;
         if (bundle == null)
         {
             return;
         }
         var pdus = (Object[])bundle.Get("pdus");
         var msgs = new SmsMessage[pdus.Length];
         for (var i = 0; i < msgs.Length; i++)
         {
             var format = bundle.GetString("format");
             msgs[i] = SmsMessage.CreateFromPdu((byte[])pdus[i], format);
             MainActivity.MainDictionary["sender"] = msgs[i].OriginatingAddress;
             MainActivity.MainAct.Decide(msgs[i].MessageBody, MainActivity.MainDictionary);
         }
     }
     catch (Exception e)
     {
         Log.Debug("errrooooor on sms receiver", e.Message);
     }
 }
 public override void OnReceive(Context context, Intent intent)
 {
     if (intent.Action.Equals(IntentAction))
     {
         var bundle = intent.Extras;
         if (bundle != null)
         {
             var pdus       = bundle.Get("pdus");
             var castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);
             var messages   = new SmsMessage[castedPdus.Length];
             for (int i = 0; i < castedPdus.Length; i++)
             {
                 var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                 JNIEnv.CopyArray(castedPdus[i].Handle, bytes);
                 messages[i] = SmsMessage.CreateFromPdu(bytes);
             }
             foreach (var message in messages)
             {
                 string messagefrom = message.DisplayOriginatingAddress;
                 string messagebody = message.MessageBody;
                 this.message = messagebody;
                 SmsReceiveService.HandleMessage(messagebody, messagefrom);
                 if (Received != null)
                 {
                     Received(messagebody, messagefrom);
                 }
             }
         }
     }
 }
Beispiel #13
0
 public override void OnReceive(Context context, Intent intent)
 {
     if (intent.Action != Constants.AndroidSMSReceived)
     {
         return;
     }
     if (intent.Extras == null)
     {
         return;
     }
     if (intent.HasExtra("pdus"))
     {
         var selectedPhoneNumber = service.GetSelectedPhone();
         var smsArray            = (Java.Lang.Object[])intent.Extras.Get("pdus");
         foreach (var item in smsArray)
         {
             var sms = SmsMessage.CreateFromPdu((byte[])item);
             if (sms.DisplayMessageBody.ToLower().Contains(Constants.Keyword))
             {
                 if (!string.IsNullOrEmpty(selectedPhoneNumber))
                 {
                     CallNumber(context, string.Format("tel: {0}", selectedPhoneNumber));
                 }
             }
         }
     }
 }
Beispiel #14
0
        public override void OnReceive(Context context, Intent intent)
        {
            if (intent.Action != INTENT_ACTION)
            {
                return;
            }
            var bundle = intent.Extras;

            if (bundle == null)
            {
                return;
            }


            DataResponse <OTP> dataResponse = new DataResponse <OTP>();

            dataResponse.Success = false;
            dataResponse.Message = "Pls fill code verify manually";
            try
            {
                var pdus = bundle.Get("pdus");
                // var castedPdus = JNIEnv.GetArray(pdus.Handle);
                var    castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);
                var    msgs       = new SmsMessage[castedPdus.Length];
                var    sb         = new StringBuilder();
                string s          = "";
                string msg        = "";

                string sender = null;
                for (var i = 0; i < msgs.Length; i++)
                {
                    var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                    JNIEnv.CopyArray(castedPdus[i].Handle, bytes);
                    string format = bundle.GetString("format");
                    msgs[i] = SmsMessage.CreateFromPdu(bytes, format);
                    if (sender == null)
                    {
                        sender = msgs[i].OriginatingAddress;
                    }
                    msg += msgs[i].MessageBody;
                    s   += msgs[i].OriginatingAddress;
                    sb.Append(string.Format("SMS From: {0}{1}Body: {2}{1}", msgs[i].OriginatingAddress, System.Environment.NewLine, msgs[i].MessageBody));
                    //Toast.MakeText(context, sb.ToString(), ToastLength.Long).Show();
                }
                dataResponse.Success = true;
                dataResponse.Data    = new OTP {
                    IsOpen = false, Message = msg, Sender = s, ReceiveDate = DateTime.Now
                };
                _onReceiveOTP?.Invoke(dataResponse);
            }
            catch
            {
                _onReceiveOTP?.Invoke(dataResponse);
            }
        }
        public override void OnReceive(Context context, Intent intent)
        {
            if (intent.Action.Equals(IntentAction))
            {
                var bundle = intent.Extras;
                if (bundle != null)
                {
                    var pdus       = bundle.Get("pdus");
                    var castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);
                    var messages   = new SmsMessage[castedPdus.Length];
                    for (int i = 0; i < castedPdus.Length; i++)
                    {
                        var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                        JNIEnv.CopyArray(castedPdus[i].Handle, bytes);
                        messages[i] = SmsMessage.CreateFromPdu(bytes);
                    }
                    foreach (var message in messages)
                    {
                        string messagefrom = message.DisplayOriginatingAddress;
                        string messagebody = message.MessageBody;
                    }
                }
            }



            //Log.Info(Tag, "Intent received: " + intent.Action);

            //if (intent.Action != IntentAction) return;

            //var bundle = intent.Extras;

            //if (bundle == null) return;

            //var pdus = bundle.Get("pdus");
            //var castedPdus = JNIEnv.GetArray<Java.Lang.Object>(pdus.Handle);

            //var msgs = new SmsMessage[castedPdus.Length];

            //var sb = new StringBuilder();

            //for (var i = 0; i < msgs.Length; i++)
            //{
            //    var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
            //    JNIEnv.CopyArray(castedPdus[i].Handle, bytes);

            //    msgs[i] = SmsMessage.CreateFromPdu(bytes);

            //    sb.Append(string.Format("SMS From: {0}{1}Body: {2}{1}", msgs[i].OriginatingAddress, System.Environment.NewLine, msgs[i].MessageBody));
            //    if (Received != null) Received(msgs[i].MessageBody , msgs[i].OriginatingAddress);
            //}

            //Toast.MakeText(context, sb.ToString(), ToastLength.Long).Show();
        }
Beispiel #16
0
        private static readonly string[] OtpMessageBodyKeywordSet = { "Keyword1", "Keyword2" }; //You must define your own Keywords
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                if (intent.Action != IntentAction)
                {
                    return;
                }
                var bundle = intent.Extras;
                if (bundle == null)
                {
                    return;
                }
                var pdus = bundle.Get("pdus");
                // var castedPdus = JNIEnv.GetArray(pdus.Handle);
                var    castedPdus = JNIEnv.GetArray <Object>(pdus.Handle);
                var    msgs       = new SmsMessage[castedPdus.Length];
                var    sb         = new StringBuilder();
                string sender     = null;
                for (var i = 0; i < msgs.Length; i++)
                {
                    var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                    JNIEnv.CopyArray(castedPdus[i].Handle, bytes);
                    string format = bundle.GetString("format");
                    msgs[i] = SmsMessage.CreateFromPdu(bytes, format);
                    if (sender == null)
                    {
                        sender = msgs[i].OriginatingAddress;
                    }
                    sb.Append(string.Format("SMS From: {0}{1}Body: {2}{1}", msgs[i].OriginatingAddress,
                                            System.Environment.NewLine, msgs[i].MessageBody));
                    //Toast.MakeText(context, sb.ToString(), ToastLength.Long).Show();
                    //Log.Error("Vahid", sb.ToString());

                    var msgBody = msgs[i].MessageBody;
                    if (!sender.Contains(Sender))
                    {
                        return;
                    }
                    bool foundKeyword = OtpMessageBodyKeywordSet.Any(k => msgBody.Contains(k));

                    //if (!foundKeyword)
                    //{
                    //    return;
                    //}
                    var code = ExtractNumber(msgBody);
                    MessagingCenter.Send(code, "OtpReceived");
                }
            }
            catch (System.Exception ex)
            {
                //Toast.MakeText(context, ex.Message, ToastLength.Long).Show();
            }
        }
Beispiel #17
0
        public override void OnReceive(global::Android.Content.Context context, Intent intent)
        {
            // this method is usually called on the UI thread and can crash the app if it throws an exception
            try
            {
                if (intent == null)
                {
                    throw new ArgumentNullException(nameof(intent));
                }

                if (INCOMING_SMS != null && intent.Action == "android.provider.Telephony.SMS_RECEIVED")
                {
                    Bundle bundle = intent.Extras;

                    if (bundle != null)
                    {
                        Java.Lang.Object[] pdus = (Java.Lang.Object[])bundle.Get("pdus");
                        for (int i = 0; i < pdus.Length; i++)
                        {
                            SmsMessage message;

                            // see the Backwards Compatibility article for more information
#if __ANDROID_23__
                            if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
                            {
                                message = SmsMessage.CreateFromPdu((byte[])pdus[i], intent.GetStringExtra("format"));  // API 23
                            }
                            else
#endif
                            {
                                // ignore deprecation warning
#pragma warning disable 618
                                message = SmsMessage.CreateFromPdu((byte[])pdus[i]);
#pragma warning restore 618
                            }

                            Contact contact   = SensusServiceHelper.GetContactAsync(message.OriginatingAddress).Result;
                            bool    isContact = contact != null;


                            INCOMING_SMS(this, new SmsDatum(DateTimeOffset.FromUnixTimeMilliseconds(message.TimestampMillis), message.OriginatingAddress, null, message.MessageBody, false, isContact, contact?.Name, contact?.Email));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SensusException.Report("Exception in SMS broadcast receiver:  " + ex.Message, ex);
            }
        }
Beispiel #18
0
 public override void OnReceive(Context context, Intent intent)
 {
     if (intent.HasExtra("pdus"))
     {
         var smsArray = (Java.Lang.Object[])intent.Extras.Get("pdus");
         foreach (var item in smsArray)
         {
             var sms = SmsMessage.CreateFromPdu((byte[])item);
             address = sms.OriginatingAddress;
             message = sms.MessageBody;
             Toast.MakeText(context, "Number :" + address + "Message : " + message, ToastLength.Short).Show();
         }
     }
 }
Beispiel #19
0
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                if (intent.Action != IntentAction)
                {
                    return;
                }
                var bundle = intent.Extras;
                if (bundle == null)
                {
                    return;
                }
                var pdus       = bundle.Get("pdus");
                var castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);
                // var msgs = new SmsMessage[castedPdus.Length - 1];
                for (var i = 0; i < castedPdus.Length; i++)
                {
                    var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                    JNIEnv.CopyArray(castedPdus[i].Handle, bytes);
                    // msgs[i] =
                    SmsMessage sms = SmsMessage.CreateFromPdu(bytes);

                    if (sms.DisplayMessageBody != null && sms.DisplayMessageBody.ToUpper().StartsWith("ESTIMADO"))
                    {
                        string mensaje = sms.DisplayMessageBody.ToUpper();

                        // string verificationCode = msgs[i].DisplayMessageBody.Split(':')[1].Split('.')[0];
                        actividadSMS.smsRecibido(mensaje);

                        /* Intent otpIntent = new Intent(Application.Context, typeof());
                         * otpIntent.PutExtra("verificationCode", verificationCode.Trim());
                         * otpIntent.PutExtra("fromsms", "OK");
                         * otpIntent.AddFlags(ActivityFlags.NewTask | ActivityFlags.SingleTop);
                         * context.StartActivity(otpIntent);
                         */
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error("ON_OFF_ANDROID_ERROR:", ex.Message);
            }
        }
Beispiel #20
0
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                if (intent.Action != IntentAction)
                {
                    return;
                }

                var bundle = intent.Extras;
                if (bundle == null)
                {
                    return;
                }
                var    pdus       = bundle.Get("pdus");
                var    castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);
                var    msgs       = new SmsMessage[castedPdus.Length];
                var    sb         = new StringBuilder();
                String sender     = null;
                for (var i = 0; i < msgs.Length; i++)
                {
                    var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                    JNIEnv.CopyArray(castedPdus[i].Handle, bytes);

                    msgs[i] = SmsMessage.CreateFromPdu(bytes);
                    if (sender == null)
                    {
                        sender = msgs[i].OriginatingAddress;
                    }
                    sb.Append(string.Format("SMS From: {0}{1}Body: {2}{1}", msgs[i].OriginatingAddress,
                                            System.Environment.NewLine, msgs[i].MessageBody));

                    Toast.MakeText(context, sb.ToString(), ToastLength.Long).Show();
                }

                MensajeDeTEXTO = sb.ToString();
                Utilities.Notify(Events.SmsRecieved, MensajeDeTEXTO);
                //ListenToSmsRetriever();
            }
            catch (Exception ex)
            {
                Toast.MakeText(context, ex.Message, ToastLength.Long).Show();
            }
        }
        public override void OnReceive(Context context, Intent intent)
        {
            Bundle bundle = intent.Extras;

            try
            {
                if (bundle != null)
                {
                    string             message     = "";
                    string             phoneNumber = "";
                    Java.Lang.Object[] pdusObj     = (Java.Lang.Object[])bundle.Get("pdus");
                    SmsMessage[]       messages    = new SmsMessage[pdusObj.Length];
                    for (int i = 0; i < messages.Length; i++)
                    {
                        if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
                        {
                            string format = bundle.GetString("format");
                            messages[i] = SmsMessage.CreateFromPdu((byte[])pdusObj[i], format);
                        }
                        else
                        {
                            messages[i] = SmsMessage.CreateFromPdu((byte[])pdusObj[i]);
                        }
                        phoneNumber = messages[i].OriginatingAddress;
                        message    += messages[i].MessageBody;
                        message    += "\n";
                    }

                    string senderNum = phoneNumber;
                    string isim      = ((MainActivity)MainActivity.global_activity).telefondanIsim(senderNum);
                    try
                    {
                        byte[] dataPacker = ((MainActivity)MainActivity.global_activity).MyDataPacker("RECSMS", System.Text.Encoding.UTF8.GetBytes("[VERI]" + isim + "[VERI]" + senderNum + "[VERI]" + message +
                                                                                                                                                   "[VERI]" + MainValues.KRBN_ISMI + "@" + MainActivity.Soketimiz.RemoteEndPoint.ToString()));
                        MainActivity.Soketimiz.BeginSend(dataPacker, 0, dataPacker.Length, SocketFlags.None, null, null);
                    }
                    catch (Exception) { }
                }
            }
            catch (Exception)
            {
            }
        }
Beispiel #22
0
        public override void OnReceive(Context context, Intent intent)
        {
            if (intent.HasExtra("pdus"))
            {
                var smsArray = (Java.Lang.Object[])intent.Extras.Get("pdus");
                foreach (var item in smsArray)
                {
                    var sms     = SmsMessage.CreateFromPdu((byte[])item);
                    var address = sms.OriginatingAddress;
                    var message = sms.MessageBody;
                    //Toast.MakeText(context, "Numero" + " " + address + " Mensaje: " + message, ToastLength.Long).Show();

                    if (_onReceiveSMSListener != null)
                    {
                        _onReceiveSMSListener.onReceived(message, address);
                    }
                }
            }
        }
        public override void OnReceive(Context context, Intent intent)
        {
            try
            {
                if (intent.Action != IntentAction)
                {
                    return;
                }

                var bundle = intent.Extras;

                if (bundle != null)
                {
                    var pdus           = (Java.Lang.Object[])bundle.Get("pdus");
                    var messages       = new SmsMessage[pdus.Length];
                    var messageBuilder = new StringBuilder();
                    for (var i = 0; i < messages.Length; i++)
                    {
                        messages[i] = SmsMessage.CreateFromPdu((byte[])pdus[i]);
                        messageBuilder.AppendFormat("Message from {0} here is the Content : {1}",
                                                    messages[i].OriginatingAddress, messages[i].MessageBody);
                    }

                    InvokeAbortBroadcast();

                    Task.Run(() => MessagingCenter.Send(
                                 new CreditInformationReceivedEvent
                    {
                        Message = messageBuilder.ToString(),
                        Number  = messages[0].OriginatingAddress,
                        Success = true
                    }, "SmsMessageReceived"));
                }
            }
            catch (Exception)
            {
                Task.Run(() => MessagingCenter.Send(new CreditInformationReceivedEvent {
                    Success = false
                }, "SmsMessageReceived"));
            }
        }
Beispiel #24
0
 public override void OnReceive(Context context, Intent intent)
 {
     if (SmsReceived.Equals(intent.Action))
     {
         var bundle = intent.Extras;
         if (bundle != null)
         {
             var pdus     = (Java.Lang.Object[])bundle.Get("pdus");
             var messages = new SmsMessage[pdus.Length];
             for (var i = 0; i < pdus.Length; i++)
             {
                 #pragma warning disable 618
                 messages[i] = SmsMessage.CreateFromPdu((byte[])pdus[i]);
                 #pragma warning restore 618
             }
             if (messages.Length > 0)
             {
                 var msgBody = new StringBuilder();
                 foreach (var smsMessage in messages)
                 {
                     if (smsMessage?.MessageBody != null)
                     {
                         msgBody.Append(smsMessage.MessageBody);
                     }
                 }
                 //var msgAddress = messages[0].OriginatingAddress;
                 var msgDate            = messages[0].TimestampMillis;
                 var saltBytes          = AesEncryptamajig.GenerateSalt();
                 var messageAesPassword = PreferenceManager.GetDefaultSharedPreferences(context)
                                          .All["PrefMessageAesPassword"] as string;
                 var content = AesEncryptamajig.Encrypt(msgBody.ToString(), messageAesPassword, saltBytes);
                 ReceiveMessage?.Invoke(this, new MessageEventArgs(new Message
                 {
                     Salt        = Convert.ToBase64String(saltBytes),
                     Content     = content,
                     MessageTime = Utils.FromUnixTime(msgDate)
                 }));
             }
         }
     }
 }
Beispiel #25
0
 public override void OnReceive(global::Android.Content.Context context, Intent intent)
 {
     if (IncomingSMS != null && intent != null && intent.Action == "android.provider.Telephony.SMS_RECEIVED")
     {
         Bundle bundle = intent.Extras;
         if (bundle != null)
         {
             try
             {
                 Java.Lang.Object[] pdus = (Java.Lang.Object[])bundle.Get("pdus");
                 for (int i = 0; i < pdus.Length; i++)
                 {
                     SmsMessage     message   = SmsMessage.CreateFromPdu((byte[])pdus[i]);
                     DateTimeOffset timestamp = new DateTimeOffset(1970, 1, 1, 0, 0, 0, new TimeSpan()).AddMilliseconds(message.TimestampMillis);
                     IncomingSMS(this, new SmsDatum(timestamp, message.OriginatingAddress, null, message.MessageBody));
                 }
             }
             catch (Exception) { }
         }
     }
 }
Beispiel #26
0
        public override void OnReceive(Context context, Intent intent)
        {
            Bundle bundle  = intent.Extras;
            string SmsBody = String.Empty;

            if (bundle != null)
            {
                if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
                {
                    SmsMessage[] msgs    = Telephony.Sms.Intents.GetMessagesFromIntent(intent);
                    var          smstext = new StringBuilder();
                    foreach (var msg in msgs)
                    {
                        smstext.Append(msg.DisplayMessageBody.ToString());
                    }
                    SmsBody = smstext.ToString();//output the received sms
                }
                else
                {
                    var          smsArray = (Java.Lang.Object[])bundle.Get("pdus");
                    SmsMessage[] messages = new SmsMessage[smsArray.Length];
                    for (int i = 0; i < smsArray.Length; i++)
                    {
                        messages[i] = SmsMessage.CreateFromPdu((byte[])smsArray[i]);
                    }
                    StringBuilder content = new StringBuilder();
                    if (messages.Length > 0)
                    {
                        foreach (var message in messages)
                        {
                            content.Append(message.DisplayMessageBody.ToString());
                        }
                    }
                    SmsBody = content.ToString(); //output the received sms
                }
            }

            //Toast.MakeText(context, $"Received message : {SmsBody.ToString()}", ToastLength.Short).Show();
        }
Beispiel #27
0
 public override void OnReceive(Context context, Intent intent)
 {
     //Toast.MakeText(context, SW.ToString(), ToastLength.Long).Show();
     try
     {
         if (intent.HasExtra("pdus"))
         {
             var smsArray = (Java.Lang.Object[])intent.Extras.Get("pdus");
             foreach (var item in smsArray)
             {
                 var    sms     = SmsMessage.CreateFromPdu((byte[])item);
                 string address = sms.OriginatingAddress;
                 string message = sms.MessageBody;
                 extra  e       = new extra(address, message);
             }
         }
     }
     catch (Exception e)
     {
         Toast.MakeText(context, e.Message.ToString(), ToastLength.Long);
     }
 }
        public override void OnReceive(Context context, Intent intent)
        {
            Log.Info(Tag, "Intent received: " + intent.Action);


            if (intent.Action == SMSIntentAction)
            {
                var bundle = intent.Extras;

                if (bundle == null)
                {
                    return;
                }

                var pdus       = bundle.Get("pdus");
                var castedPdus = JNIEnv.GetArray <Java.Lang.Object>(pdus.Handle);

                var msgs = new SmsMessage[castedPdus.Length];

                var sb = new StringBuilder();

                for (var i = 0; i < msgs.Length; i++)
                {
                    var bytes = new byte[JNIEnv.GetArrayLength(castedPdus[i].Handle)];
                    JNIEnv.CopyArray(castedPdus[i].Handle, bytes);

                    msgs[i] = SmsMessage.CreateFromPdu(bytes);

                    sb.Append(string.Format("{1}*{0}", msgs[i].OriginatingAddress, msgs[i].MessageBody));
                }

                onSMSReceived?.Invoke(this, sb.ToString());
            }

            else
            {
                return;
            }
        } //end onReceive
        public override void OnReceive(global::Android.Content.Context context, Intent intent)
        {
            if (INCOMING_SMS != null && intent != null && intent.Action == "android.provider.Telephony.SMS_RECEIVED")
            {
                Bundle bundle = intent.Extras;
                if (bundle != null)
                {
                    try
                    {
                        Java.Lang.Object[] pdus = (Java.Lang.Object[])bundle.Get("pdus");
                        for (int i = 0; i < pdus.Length; i++)
                        {
                            SmsMessage message;

                            // https://github.com/predictive-technology-laboratory/sensus/wiki/Backwards-Compatibility
#if __ANDROID_23__
                            if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
                            {
                                message = SmsMessage.CreateFromPdu((byte[])pdus[i], intent.GetStringExtra("format"));  // API 23
                            }
                            else
#endif
                            {
                                // ignore deprecation warning
#pragma warning disable 618
                                message = SmsMessage.CreateFromPdu((byte[])pdus[i]);
#pragma warning restore 618
                            }

                            DateTimeOffset timestamp = new DateTimeOffset(1970, 1, 1, 0, 0, 0, new TimeSpan()).AddMilliseconds(message.TimestampMillis);
                            INCOMING_SMS(this, new SmsDatum(timestamp, message.OriginatingAddress, null, message.MessageBody, false));
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }
Beispiel #30
0
		public override void OnReceive(Context context, Intent intent)
		{
			InvokeAbortBroadcast();
			try
			{
				if (intent.Action != INTENT_ACTION) return;
				var bundle = intent.Extras;
				if (bundle == null) {
					return;
				}
				var pdus = bundle.Get("pdus").ToArray<Java.Lang.Object>();
				var msgs = new SmsMessage[pdus.Length];
				var sb = new StringBuilder();
				String sender = null;
				for(int i=0; i<msgs.Length; i++){
					
					msgs[i] = SmsMessage.CreateFromPdu((byte[])pdus[i]);
					String messageBody = msgs[i].MessageBody;
					if (sender == null) {
						sender = msgs[i].OriginatingAddress;
					}
					sb.Append(string.Format("SMS From: {0}{1}Body: {2}{1}", msgs[i].OriginatingAddress,
						Environment.NewLine, messageBody));
				}
				if (sender != null)
				{
					Toast.MakeText(context, "IsOrderedBroadcast :" + IsOrderedBroadcast.ToString() + "\n" + sb.ToString(), ToastLength.Long).Show();
				}
				else
				{
					ClearAbortBroadcast();
				}
			}
			catch (Exception ex)
			{
				Toast.MakeText(context, ex.Message, ToastLength.Long).Show();
			}
		}