При развертывании проекта (чтение sms-сообщений), после получения сообщения приложение открывается три раза. По-моему OnCreate() запускается несколько раз. Как исправить повторный запуск, чтобы при получении sms не запускался новый экземпляр, и выводился в одном окне в поле editText.
SMSBroadcastReceiver.cs
using Android.App;
using Android.Content;
using Android.Telephony;
namespace HelloApp
{
// [BroadcastReceiver(Enabled = true, Label = "SMS Receiver")]
[BroadcastReceiver]
[IntentFilter(new[] { "android.provider.Telephony.SMS_RECEIVED" }, Priority = (int)IntentFilterPriority.HighPriority)]
public class SMSBroadcastReceiver : BroadcastReceiver
{
//private const string IntentAction = "android.provider.Telephony.SMS_RECEIVED";
public static readonly string IntentAction = "android.provider.Telephony.SMS_RECEIVED";
public string verificationCode;
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);
verificationCode = sms.DisplayMessageBody;
Intent otpIntent = new Intent(Application.Context, typeof(MainActivity));
context.StartActivity(otpIntent);
}
}
}
}
}
MainActivity.cs
using Android.App;
using Android.Widget;
using Android.OS;
using System;
using Android.Content;
namespace HelloApp
{
[Activity(Label = "HelloApp", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
EditText edtext;
SMSBroadcastReceiver smsReceiver;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
edtext = FindViewById<EditText>(Resource.Id.editText);
}
protected override void OnResume()
{
base.OnResume();
if (null == this.smsReceiver)
{
smsReceiver = new SMSBroadcastReceiver();
this.RegisterReceiver(this.smsReceiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));
}
else
{
edtext.Text = smsReceiver.verificationCode;
}
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как завершить tcp соединение для windowsnetworking
Вот стал вроде как простой вопросНеобходимо в windows forms получить изображение из видео потока
Я пишу сайт на которое пользователи загружают ms word документы, а сайт редактирует документы с помощью COMПоэтому мне нужно чтобы на сервере...
привет есть кодЯ отправляю запрос и в ответ получаю файл