public override void OnCreate() { base.OnCreate(); // Register ScreenOn, ScreenOff intents RegisterReceiver(IntentBroadcastReceiver.Instance, new IntentFilter(Intent.ActionScreenOn)); RegisterReceiver(IntentBroadcastReceiver.Instance, new IntentFilter(Intent.ActionScreenOff)); PowerManager powerManager = GetSystemService(PowerService) as PowerManager; if (!powerManager.IsInteractive) { StopSelf(); return; } // Create widget update intent Intent intent = new Intent(); intent.SetAction(AppWidgetManager.ActionAppwidgetUpdate); PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 0, intent, 0); // Setup an alarm AlarmManager alarmManager = GetSystemService(AlarmService) as AlarmManager; alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime(), TramUrWayApplication.WidgetUpdateDelay * 1000, pendingIntent); }
private void SetTime(Calendar alarmTrigger, Treatment treatment, PendingIntent pendingIntent, AlarmManager alarmManager, int position) { //set time AlarmPickerFragment frag = AlarmPickerFragment.NewInstance( delegate(DateTime time) { string[] timePicked = time.ToShortTimeString().Split(":"); int hour = int.Parse(timePicked[0]); int minutes = int.Parse(timePicked[1]); Console.WriteLine(timePicked); alarmTrigger.Set(Java.Util.Calendar.HourOfDay, hour); alarmTrigger.Set(Java.Util.Calendar.Minute, minutes); alarmTrigger.Set(Java.Util.Calendar.Second, 0); Console.WriteLine(alarmTrigger.Time.ToLocaleString()); alarmManager.SetInexactRepeating(AlarmType.RtcWakeup, alarmTrigger.TimeInMillis, AlarmManager.IntervalDay * (int)treatment.Frequency, pendingIntent); _treatments[position].AlarmTime = time.ToShortTimeString(); UpdateAlarmTime(_treatments[position]); _treatmentsView.Adapter = new TreatmentAdapter(_treatments.ToArray(), this); }); frag.Show(FragmentManager, AlarmPickerFragment.TAG); }
public void LocalNotify(int idNotificacao, string title, string message, Int32 diaDaSemanaAlarme, Int32 horaAlarme, Int32 minutoAlarme, bool repetir) { var context = Android.App.Application.Context; Intent alarmIntent = new Intent(context, typeof(AlarmReceiver)); alarmIntent.PutExtra("message", message); alarmIntent.PutExtra("title", title); alarmIntent.PutExtra("id", Convert.ToString(idNotificacao)); PendingIntent pendingIntent = PendingIntent.GetBroadcast(context, idNotificacao, alarmIntent, PendingIntentFlags.UpdateCurrent); AlarmManager alarmManager = (AlarmManager)context.GetSystemService(Context.AlarmService); var hoje = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); var diaDaSemana = Convert.ToInt32(hoje.DayOfWeek); var horaAtual = hoje.Hour; var minutoAtual = hoje.Minute; int diasAdicionar = 0; if (diaDaSemana == diaDaSemanaAlarme) { if (horaAtual > horaAlarme) { diasAdicionar = 7; diaDaSemana = diaDaSemanaAlarme; } else if (horaAtual == horaAlarme && minutoAtual >= minutoAlarme) { diasAdicionar = 7; diaDaSemana = diaDaSemanaAlarme; } } while (diaDaSemana != diaDaSemanaAlarme) { diasAdicionar++; diaDaSemana++; if (diaDaSemana == 7) { diaDaSemana = 0; } } var tempoAlarme = new DateTime(DateTime.Now.AddDays(diasAdicionar).Year, DateTime.Now.AddDays(diasAdicionar).Month, DateTime.Now.AddDays(diasAdicionar).Day, horaAlarme, minutoAlarme, 0); var diferencaTempo = tempoAlarme - hoje; var tempoDisparo = (long)diferencaTempo.TotalMilliseconds; if (repetir) { alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + tempoDisparo, AlarmManager.IntervalDay * 7, pendingIntent); } else { alarmManager.Set(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + tempoDisparo, pendingIntent); } }
/// <summary> /// Broadcasts the productos pendientes. /// </summary> void BroadcastProductosPendientes() { Intent i = new Intent(this, typeof(NotificacionAlert)); PendingIntent pi = PendingIntent.GetBroadcast(this, 0, i, 0); AlarmManager alarmManager = (AlarmManager)GetSystemService(AlarmService); alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtime, SystemClock.CurrentThreadTimeMillis(), 30000, pi); }
/// <summary> /// Broadcasts the productos pendientes. /// </summary> void BroadcastPendientesNoFinalizados() { Intent i = new Intent(this, typeof(CheckPendingProducts)); PendingIntent pi = PendingIntent.GetBroadcast(this, 0, i, 0); AlarmManager alarmManager = (AlarmManager)GetSystemService(AlarmService); alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtime, SystemClock.CurrentThreadTimeMillis(), 1000, pi); }
public static void SetWakeUpAlarmRepeating(Context context, long firstFireAfterMIliseconds) { WakeUpAlarmReceiver.CancelWakeUpAlarmRepeating(context); AlarmManager am = (AlarmManager)context.GetSystemService(Context.AlarmService); Intent intent = new Intent(context, typeof(WakeUpAlarmReceiver)); pendingIntent = PendingIntent.GetBroadcast(context, 0, intent, 0); am.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + firstFireAfterMIliseconds, AlarmManager.IntervalHour, pendingIntent); }
public override void OnReceive(Context context, Intent intent) { if (intent.Action != null && intent.Action.Equals(Intent.ActionBootCompleted)) { Logging.Log(this, Logging.LoggingTypeDebug, "OnReceive()"); AlarmManager alarmManager = (AlarmManager)context.GetSystemService(Context.AlarmService); PendingIntent pendingIntent = PendingIntent.GetBroadcast(context, 0, new Intent(context, typeof(NewsAppAlarmService)), 0); alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + 60, AlarmManager.IntervalHalfDay, pendingIntent); } }
public void Remind(string title, string message, DateTime dateTime, string type) { Intent alarmIntent = new Intent(Forms.Context, typeof(AlarmReceiver)); alarmIntent.PutExtra("message", message); alarmIntent.PutExtra("title", title); PendingIntent pendingIntent = PendingIntent.GetBroadcast(Forms.Context, ++counter, alarmIntent, PendingIntentFlags.UpdateCurrent); AlarmManager alarmManager = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService); var millis = Convert.ToInt64((DateTime.Now - DateTime.Today.Date).TotalMilliseconds); var sampleTime = ManilaTime; //ManilaDay.AddHours(16).AddMinutes(50); var triggerOpen = Convert.ToInt64((MarketOpen - ManilaDay.Date).TotalMilliseconds); var triggerClose = Convert.ToInt64((MarketClose - ManilaDay).TotalMilliseconds); var intervalDay = AlarmManager.IntervalDay; Java.Util.Calendar calendar = Java.Util.Calendar.Instance; if (type == "Open") { calendar.Set( Java.Util.CalendarField.HourOfDay, MarketOpen.Hour); calendar.Set( Java.Util.CalendarField.Minute, MarketOpen.Minute); alarmManager.SetInexactRepeating( AlarmType.RtcWakeup, calendar.TimeInMillis, intervalDay, pendingIntent); } else if (type == "Close") { calendar.Set( Java.Util.CalendarField.HourOfDay, MarketClose.Hour); calendar.Set( Java.Util.CalendarField.Minute, MarketClose.Minute); alarmManager.SetInexactRepeating( AlarmType.RtcWakeup, calendar.TimeInMillis, intervalDay, pendingIntent); } }
public void OnSharedPreferenceChanged(ISharedPreferences sharedPreferences, string key) { //Killswitch to decide if user wants to stop downloading images. //Stop All receivers, alarms, etc. if (key == ConfigurationParameters.EnableService) { if (sharedPreferences.GetBoolean(key, false) == true) { #region Enable AlarmManager Ice Cream Sandwich. if (Build.VERSION.SdkInt < BuildVersionCodes.KitkatWatch) { intent = new Intent(Application.Context, typeof(AlarmReceiver)); pendingIntent = PendingIntent.GetBroadcast(Application.Context, 2, intent, PendingIntentFlags.UpdateCurrent); //If the user enables the service, schedule the alarm or Scheduler to download data each day. EnableBootReceiver(); //Kitkat or Less. //>Schedule an alarm to run after 30 minutes after this call(second parameter), and once a day after that.(third parameter) alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + AlarmManager.IntervalFifteenMinutes, AlarmManager.IntervalDay, pendingIntent); } #endregion Enable AlarmManager Ice Cream Sandwich. #region Enable JobScheduler Lollipop and Beyond. Scheduler.ScheduleJob(Application.Context); #endregion Enable JobScheduler Lollipop and Beyond. } else if (sharedPreferences.GetBoolean(key, false) == false) { #region Disable AlarmManager Ice Cream Sandwich if (Build.VERSION.SdkInt < BuildVersionCodes.KitkatWatch) { alarmManager?.Cancel(pendingIntent); DisableBootReceiver(); } #endregion Disable AlarmManager Ice Cream Sandwich #region Disable JobScheduler Lollipop and Beyond. Scheduler.CancelSchedule(Application.Context); #endregion Disable JobScheduler Lollipop and Beyond. } } }
public void CreateTask(MainActivity mainActivity) { if (!IsAlarmCreated()) { Intent alarmIntent = new Intent(mainActivity, typeof(AlarmReceiver)); alarmIntent.PutExtra("title", "Налична е нова версия"); alarmIntent.PutExtra("message", "Натиснете тук за сваляне на новата версия."); PendingIntent pending = PendingIntent.GetBroadcast(mainActivity, 0, alarmIntent, PendingIntentFlags.UpdateCurrent | PendingIntentFlags.Immutable); AlarmManager alarmManager = mainActivity.GetSystemService(Context.AlarmService).JavaCast <AlarmManager>(); alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + CHECK_TIME, CHECK_TIME, pending); } }
public void SetAlarm(Context pContext) { AlarmManager pManager = (AlarmManager)pContext.GetSystemService(Context.AlarmService); Intent pIntent = new Intent(pContext, typeof(NotificationAlarm)); PendingIntent pPendingIntent = PendingIntent.GetBroadcast(pContext, 0, pIntent, 0); DateTime pCurrent = DateTime.Now; pCurrent.AddMinutes(1); long lInterval = 1000 * 60; // minute long lMS = this.GetMS(pCurrent); pManager.SetInexactRepeating(AlarmType.RtcWakeup, lMS, lInterval, pPendingIntent); }
protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; try { if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop) { Xamarin.Essentials.Platform.Init(this, savedInstanceState); RequestPermissions(Permission, requestID); } } catch { } // KẾT NỐI GIỮA TẦNG SPECIFIC VỚI PLC ĐỂ GỌI SPECIFIC Ở PLC ContactsAdapterManager.Current = new ContactsAdapter(this, Application); ContactService_AndroidManager.Current = new ContactService_Android(this, Application); ToastManager.Current = new ToastDependency(this); base.OnCreate(savedInstanceState); Rg.Plugins.Popup.Popup.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new App()); // LẤY PERMISSION KHI KHỞI ĐỘNG APPS long repeatEveryday = (60 * 1000) * 60 * 24; // => run at 2:00 AM every day Intent intentAlarm = new Intent(this, typeof(MyReceiver)); // create the object AlarmManager alarmManager = (AlarmManager)GetSystemService(Context.AlarmService); // define hours to starts => after 6 PM Java.Util.Calendar calendarStart = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.Default); calendarStart.Set(Java.Util.CalendarField.HourOfDay, 02); calendarStart.Set(Java.Util.CalendarField.Minute, 00); calendarStart.Set(Java.Util.CalendarField.Second, 00); // alarmManager.SetInexactRepeating(AlarmType.RtcWakeup, calendarStart.TimeInMillis, repeatEveryday, PendingIntent.GetBroadcast(this, 1, intentAlarm, PendingIntentFlags.UpdateCurrent)); }
protected override void OnActivityResult(int requestCode, Result resultCode, Android.Content.Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (resultCode == Result.Canceled) { News activityNews = LocalActivityManager.GetActivity("TabNews") as News; if (activityNews != null) { Toast.MakeText(activityNews, "Die Newsfeeds werden aktualisiert.", Android.Widget.ToastLength.Short).Show(); new FeedHelper().UpdateBGFeeds(activityNews); AlarmManager alarmManager = (AlarmManager)GetSystemService(Context.AlarmService); PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 0, new Intent(this, typeof(NewsAppAlarmService)), 0); alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + 60, AlarmManager.IntervalHalfDay, pendingIntent); } } }
public static void ScheduleAlarmManager(Context context, string content) { if (IsAlarmSet(context, content)) { Toast.MakeText(context, "Alarm is already set", ToastLength.Long).Show(); } else { Toast.MakeText(context, "ScheduleAlarmManager()", ToastLength.Long).Show(); AlarmManager alarmManager = (AlarmManager)context.GetSystemService(Context.AlarmService); Calendar calendar = Calendar.GetInstance(Java.Util.TimeZone.Default); calendar.Set(CalendarField.HourOfDay, 1); calendar.Set(CalendarField.Minute, 1); alarmManager.SetInexactRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, 60 * 1000, GetPendigIntent(context, content)); // AlarmManager.IntervalDay } }
public void WireUpTrackLocationService() { AlarmManager alarm = (AlarmManager)this.GetSystemService(Context.AlarmService); MessagingCenter.Subscribe <StartLocationServiceMessage>(this, "StartLocationServiceMessage", message => { //Xamarin.Forms.Forms.Context.StartActivity(new Android.Content.Intent(Android.Provider.Settings.ActionLocationSourceSettings)); var intent = new Intent(this, typeof(TrackLocationService)); //StartService(intent); //PendingIntent pendingServiceIntent = PendingIntent.GetBroadcast(this, 0, new Intent(intent), PendingIntentFlags.UpdateCurrent); PendingIntent pendingServiceIntent = PendingIntent.GetService(this, 0, new Intent(intent), PendingIntentFlags.UpdateCurrent); alarm.SetInexactRepeating(AlarmType.RtcWakeup, 60 * 1000, 60 * 1000, pendingServiceIntent); //alarm.SetRepeating(AlarmType.RtcWakeup, 0, 10 * 1000, pendingServiceIntent); }); MessagingCenter.Subscribe <StopLocationServiceMessage>(this, "StopLocationServiceMessage", message => { var intent = new Intent(this, typeof(TrackLocationService)); StopService(intent); PendingIntent pendingServiceIntent = PendingIntent.GetService(this, 0, new Intent(intent), PendingIntentFlags.UpdateCurrent); alarm.Cancel(pendingServiceIntent); // Build the notification: NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .SetAutoCancel(true) // Dismiss from the notif. area when clicked .SetContentIntent(pendingServiceIntent) .SetOngoing(false); // Finally, publish the notification: NotificationManager notificationManager = (NotificationManager)GetSystemService(Context.NotificationService); notificationManager.Notify(1000, builder.Build()); }); }
public void SetAlarm(AppModels.UserCondition condition) { long now = SystemClock.ElapsedRealtime(); Context context = Forms.Context; AlarmManager am = (AlarmManager)context.GetSystemService(Context.AlarmService); Intent intent = new Intent(context, this.Class); intent.PutExtra("conditionId", condition.Id); intent.PutExtra("conditionName", condition.Condition); long waitTime = condition.ReminderIntervalMillis(); if (waitTime <= 0) { return; } PendingIntent pi = PendingIntent.GetBroadcast(context, 0, intent, 0); am.Cancel(pi); am.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, now + waitTime, waitTime, pi); }
private void UpdateAlarm(Context context) { AlarmManager am = (AlarmManager)context.GetSystemService(Context.AlarmService); int interval = Settings.DefaultInterval; bool startNow = !alarmStarted; long intervalMillis = (long)TimeSpan.FromMinutes(interval).TotalMilliseconds; long triggerAtTime = SystemClock.ElapsedRealtime() + intervalMillis; if (startNow) { EnqueueWork(context, new Intent(context, typeof(WeatherComplicationIntentService)) .SetAction(ACTION_UPDATECOMPLICATIONS)); } PendingIntent pendingIntent = GetAlarmIntent(context); am.Cancel(pendingIntent); am.SetInexactRepeating(AlarmType.ElapsedRealtime, triggerAtTime, intervalMillis, pendingIntent); alarmStarted = true; Logger.WriteLine(LoggerLevel.Info, "{0}: Updated alarm", TAG); }
public void ScheduleAlarms(AlarmManager alarmManager, PendingIntent pendingIntent, Context context) { alarmManager.SetInexactRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + 6000, AlarmManager.IntervalFifteenMinutes, pendingIntent); }
/// <summary> /// /// </summary> /// <param name="request"></param> protected virtual bool ShowLater(NotificationRequest request) { if (request.Schedule.NotifyTime is null || request.Schedule.NotifyTime <= DateTime.Now) // To be consistent with iOS, Do not Schedule notification if NotifyTime is earlier than DateTime.Now { return(false); } var dictionaryRequest = NotificationCenter.GetRequestSerialize(request); var intent = new Intent(Application.Context, typeof(ScheduledAlarmReceiver)); foreach (var item in dictionaryRequest) { intent.PutExtra(item.Key, item.Value); } var pendingIntent = PendingIntent.GetBroadcast( Application.Context, request.NotificationId, intent, PendingIntentFlags.UpdateCurrent ); var utcAlarmTimeInMillis = (request.Schedule.NotifyTime.Value.ToUniversalTime() - DateTime.UtcNow).TotalMilliseconds; var triggerTime = (long)utcAlarmTimeInMillis; if (request.Schedule.RepeatType != NotificationRepeat.No) { TimeSpan?repeatInterval = null; switch (request.Schedule.RepeatType) { case NotificationRepeat.Daily: // To be consistent with iOS, Schedule notification next day same time. repeatInterval = TimeSpan.FromDays(1); break; case NotificationRepeat.Weekly: // To be consistent with iOS, Schedule notification next week same day same time. repeatInterval = TimeSpan.FromDays(7); break; case NotificationRepeat.TimeInterval: if (request.Schedule.NotifyRepeatInterval.HasValue) { repeatInterval = request.Schedule.NotifyRepeatInterval.Value; } break; } if (repeatInterval == null) { return(true); } var intervalTime = (long)repeatInterval.Value.TotalMilliseconds; MyAlarmManager.SetInexactRepeating(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + triggerTime, intervalTime, pendingIntent); } else { if (Build.VERSION.SdkInt >= BuildVersionCodes.M) { MyAlarmManager.SetExactAndAllowWhileIdle(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + triggerTime, pendingIntent); } else { MyAlarmManager.SetExact(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + triggerTime, pendingIntent); } } AddPreferencesNotificationId(PreferencesPendingIdListKey, request.NotificationId); return(true); }