示例#1
0
        protected virtual PendingIntent GetPendingIntent()
        {
            var intent = this.context.CreateIntent <GpsBroadcastReceiver>(IntentAction);

            return(PendingIntent.GetBroadcast(
                       this.context.AppContext,
                       0,
                       intent,
                       PendingIntentFlags.UpdateCurrent
                       ));
        }
        private PendingUsbPermission CreateUsbPermission(Context context, UsbDeviceStatus usbDeviceStatus)
        {
            PendingIntent        mPendingIntent       = PendingIntent.GetBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);
            PendingUsbPermission pendingUsbPermission = new PendingUsbPermission
            {
                pendingIntent   = mPendingIntent,
                usbDeviceStatus = usbDeviceStatus
            };

            return(pendingUsbPermission);
        }
        private static void cancelExistingPendingIntentIfNecessary(int notificationId, Intent scheduledNotificationIntent, AlarmManager alarmManager)
        {
            var oldIntent = PendingIntent.GetBroadcast(Application.Context, notificationId, scheduledNotificationIntent, PendingIntentFlags.NoCreate);

            if (oldIntent == null)
            {
                return;
            }

            alarmManager.Cancel(oldIntent);
        }
        /// <summary>
        /// Requests temporary permission for the given package to access the accessory.
        /// This may result in a system dialog being displayed to the user if permission had not already been granted.
        /// </summary>
        /// <returns>The observable sequence of permission values.</returns>
        /// <param name="manager">The UsbManager system service.</param>
        /// <param name="context">The Context to request the permission from.</param>
        /// <param name="accessory">The UsbAccessory to request permission for.</param>
        public static IObservable <bool> PermissionRequested(this UsbManager manager, Context context, UsbAccessory accessory)
        {
            return(Observable.Create <bool> (observer => {
                var usbPermissionReceiver = new UsbAccessoryPermissionReceiver(observer, accessory);
                context.RegisterReceiver(usbPermissionReceiver, new IntentFilter(ACTION_USB_PERMISSION));

                var intent = PendingIntent.GetBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), 0);
                manager.RequestPermission(accessory, intent);

                return Disposable.Create(() => context.UnregisterReceiver(usbPermissionReceiver));
            }));
        }
示例#5
0
        private void ScheduleServiceWork(Context context)
        {
            var alarmIntent = new Intent(context.ApplicationContext, typeof(AlarmReceiver));
            var broadcast   = PendingIntent.GetBroadcast(context.ApplicationContext, 0, alarmIntent, PendingIntentFlags.NoCreate);

            if (broadcast == null)
            {
                var pendingIntent = PendingIntent.GetBroadcast(context.ApplicationContext, 0, alarmIntent, 0);
                var alarmManager  = (AlarmManager)context.GetSystemService(Context.AlarmService);
                alarmManager.SetRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime(), _interval, pendingIntent);
            }
        }
示例#6
0
        public void TimerAddSchedule(Shedule shedule)
        {
            Intent alarmIntent = new Intent(Forms.Context, typeof(ScheduleReceiver));

            alarmIntent.PutExtra("Id", shedule.Id);
            alarmIntent.PutExtra("Name", shedule.Name);

            PendingIntent pendingIntent = PendingIntent.GetBroadcast(Forms.Context, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
            AlarmManager  alarmManager  = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService);

            alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 5 * 1000, pendingIntent);
        }
示例#7
0
        private void BtnStopAlarm_Click(object sender, EventArgs e)
        {
            PendingIntent pIntent = PendingIntent.GetBroadcast(Application.Context, 0, new Intent(Android.App.Application.Context, typeof(AlarmReceiver)), 0);

            AlarmManager _alarmManager = (AlarmManager)Android.App.Application.Context.GetSystemService(AlarmService);

            _alarmManager.Cancel(pIntent);
            Intent alarmService = new Intent(this, typeof(AlarmTestService));

            StopService(alarmService);
            Toast.MakeText(this, "定时任务被取消", ToastLength.Short).Show();
        }
        internal static void internalUnRegister(Context context)
        {
            Logger.Debug("Unregistering app " + context.PackageName);

            var intent = new Intent(Constants.INTENT_TO_GCM_UNREGISTRATION);

            intent.SetPackage(GSF_PACKAGE);
            intent.PutExtra(Constants.EXTRA_APPLICATION_PENDING_INTENT,
                            PendingIntent.GetBroadcast(context, 0, new Intent(), 0));

            context.StartService(intent);
        }
        private Notification.Action buildNotificationAction()
        {
            Intent intent = new Intent();

            intent.SetAction("com.tutorialspoint.CUSTOM_INTENT");
            PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 1, intent, 0);

            return(new Notification
                   .Action
                   .Builder(Resource.Mipmap.Icon, "Increase in 2", pendingIntent)
                   .Build());
        }
示例#10
0
        //Implementing the alarmService Method
        private void RemaindingService(DateTime date, String name, String message)
        {
            Intent alarmIntent = new Intent(this, typeof(AlarmReceiver));

            alarmIntent.PutExtra("Message", name);
            alarmIntent.PutExtra("title", message);

            PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
            AlarmManager  alarmManager  = (AlarmManager)this.GetSystemService(Context.AlarmService);

            alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 5 * 1000, pendingIntent);
        }
        static PendingIntent CreateContentOrDeleteIntent(string action, IPlatformNotificationBuilder builder, ToastId toastId)
        {
            var intent = new Intent(action);

            toastId.ToIntent(intent);
            builder.AddCustomArgsTo(intent);

            var result = PendingIntent.GetBroadcast(Application.Context, toastId.GetPersistentHashCode(), intent, 0)
                         ?? throw new InvalidOperationException(ErrorStrings.KBroadcastError);

            return(result);
        }
示例#12
0
        void RegisterClicks(Context context, int[] appWidgetIds, RemoteViews widgetView)
        {
            var intent = new Intent(context, typeof(AppWidget));

            intent.SetAction(ACTION_SELECTED);

            var piBackground = PendingIntent.GetBroadcast(context, 0, intent, PendingIntentFlags.UpdateCurrent);

            widgetView.SetPendingIntentTemplate(Resource.Id.widget_listview, piBackground);

            SetRefreshPendingIntent(context, widgetView, appWidgetIds);
        }
示例#13
0
        public Notification.Builder GetChannelNotification(String title, String content, int icon, Intent intent)
        {
            //PendingIntent.FLAG_UPDATE_CURRENT 这个类型才能传值
            PendingIntent pendingIntent = PendingIntent.GetBroadcast(_context, 0, intent, PendingIntentFlags.UpdateCurrent);

            return(new Notification.Builder(_context, id)
                   .SetContentTitle(title)
                   .SetContentText(content)
                   .SetSmallIcon(icon)
                   .SetAutoCancel(true)
                   .SetContentIntent(pendingIntent));
        }
示例#14
0
        public void SetAlarm(string message, string title, int eventId, DateTimeOffset eventStartDate)
        {
            var alarmIntent = new Intent(Forms.Context, typeof(AlarmReceiver));

            alarmIntent.PutExtra("message", message);
            alarmIntent.PutExtra("title", title);
            var pendingIntent = PendingIntent.GetBroadcast(Forms.Context, eventId, alarmIntent,
                                                           PendingIntentFlags.UpdateCurrent);
            var alarmManager = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService);

            alarmManager.Set(AlarmType.RtcWakeup, eventStartDate.ToUnixTimeMilliseconds(), pendingIntent);
        }
示例#15
0
        public static void SetAlarmForBackgroundServices(Context context)
        {
            var alarmIntent = new Intent(context.ApplicationContext, typeof(AlarmReceiver));
            var broadcast   = PendingIntent.GetBroadcast(context.ApplicationContext, 0, alarmIntent, PendingIntentFlags.NoCreate);

            if (broadcast == null)
            {
                var pendingIntent = PendingIntent.GetBroadcast(context.ApplicationContext, 0, alarmIntent, 0);
                var alarmManager  = (AlarmManager)context.GetSystemService(Context.AlarmService);
                alarmManager.SetRepeating(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime(), 15000, pendingIntent);
            }
        }
示例#16
0
        internal static void InternalUnRegister(Context context)
        {
            //Logger.Debug("Unregistering app " + context.PackageName);

            var intent = new Intent(Constants.IntentToGcmUnregistration);

            intent.SetPackage(GsfPackage);
            intent.PutExtra(Constants.ExtraApplicationPendingIntent,
                            PendingIntent.GetBroadcast(context, 0, new Intent(), 0));

            context.StartService(intent);
        }
示例#17
0
        public USBCommunicator(Context context, Handler handler)
        {
            _context    = context;
            _handler    = handler;
            _usbManager = (UsbManager)context.GetSystemService(Context.UsbService);

            _permissionIntent = PendingIntent.GetBroadcast(_context, 0, new Intent(ACTION_USB_PERMISSION), 0);
            _usbReceiver      = new USBBroadcastReceiver(this);
            _context.RegisterReceiver(_usbReceiver, new IntentFilter(ACTION_USB_PERMISSION));
            _context.RegisterReceiver(_usbReceiver, new IntentFilter(UsbManager.ActionUsbDeviceAttached));
            _context.RegisterReceiver(_usbReceiver, new IntentFilter(UsbManager.ActionUsbDeviceDetached));
        }
示例#18
0
        private static void CancelAlarms(Context context)
        {
            var           am              = (AlarmManager)context.GetSystemService(Context.AlarmService);
            var           intent          = new Intent(Application.Context, typeof(AlarmDeviceReceiver));
            PendingIntent piBloodPressure = PendingIntent.GetBroadcast(Application.Context, Constants.BloodPressureNotifId, intent, 0);
            PendingIntent piGlucose       = PendingIntent.GetBroadcast(Application.Context, Constants.GlucoseNotifId, intent, 0);

            am.Cancel(piBloodPressure);
            piBloodPressure.Cancel();
            am.Cancel(piGlucose);
            piGlucose.Cancel();
        }
示例#19
0
        protected override void OnHandleIntent(Intent intent)
        {
            // set next alarm
            var repetitionIntent = new Intent(this.BaseContext, typeof(AlarmReceiver));
            var source = PendingIntent.GetBroadcast(this.BaseContext, 0, intent, 0);
            var am = (AlarmManager)Android.App.Application.Context.GetSystemService(Context.AlarmService);
            var calendar = DateTime.Now.AddMinutes(5);

            DateTime dtBasis = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            am.SetExactAndAllowWhileIdle(AlarmType.RtcWakeup, (long)calendar.ToUniversalTime().Subtract(dtBasis).TotalMilliseconds, source);

        }
示例#20
0
        public bool RequestUSBPermissions(UsbManager Manager, UsbDevice device, SynchronizationContext Main)
        {
            bool Failed             = false;
            int  CurrentRequestCode = RequestCode++;
            bool Granted            = false;

            Main.Send(delegate
            {
                try
                {
                    if (!Manager.HasPermission(device))
                    {
                        ActiveRequests.Add(CurrentRequestCode);
                        USBPermissionBroadcastReceiver.SetupRequest(CurrentRequestCode, "com.odm_inc.inSpec.usb.host");
                        PendingIntent mPermissionIntent = PendingIntent.GetBroadcast(this, CurrentRequestCode, new Intent("com.odm_inc.inSpec.usb.host"), 0);
                        Manager.RequestPermission(device, mPermissionIntent);
                    }
                    else
                    {
                        Granted = true;
                    }
                }
                catch (Exception ex)
                {
                    Failed = true;
                }
            }, null);
            if (Granted)
            {
                return(true);
            }
            if (Failed)
            {
                return(false);
            }
            Tuple <bool, int> ReturnValue = null;
            bool Waiting = true;

            while (Waiting)
            {
                Thread.Sleep(50);
                for (int x = 0; x < RequestReturns.Count; x++)
                {
                    if (RequestReturns[x].Item2 == CurrentRequestCode)
                    {
                        Waiting     = false;
                        ReturnValue = RequestReturns[x];
                    }
                }
            }
            RequestReturns.Remove(ReturnValue);
            return(ReturnValue.Item1);
        }
示例#21
0
        private void RegisterClicks(Context context, int[] appWidgetIds, RemoteViews widgetView)
        {
            var intent = new Intent(context, typeof(AppWidget));

            intent.SetAction(AppWidgetManager.ActionAppwidgetUpdate);
            intent.PutExtra(AppWidgetManager.ExtraAppwidgetIds, appWidgetIds);

            // Register click event for the Background
            var piBackground = PendingIntent.GetBroadcast(context, 0, intent, PendingIntentFlags.UpdateCurrent);

            widgetView.SetOnClickPendingIntent(Resource.Id.widget_background, piBackground);
        }
示例#22
0
        /// <summary>
        /// Cancel a local notification
        /// </summary>
        /// <param name="id">Id of the notification to cancel</param>
        public static void Cancel(int id)
        {
            var intent        = CreateIntent(id);
            var pendingIntent = PendingIntent.GetBroadcast(Application.Context, id, intent, PendingIntentFlags.UpdateCurrent);

            pendingIntent.Cancel();

            AlarmManager.Cancel(pendingIntent);
            pendingIntent.Cancel();

            NotificationManager.Cancel(id);
        }
        /**
         * 기존 등록되어있는 알람을 해제한다.
         */
        private void unregisterRestartAlarm()
        {
            Log.Info("PersistentService", "unregisterRestartAlarm()");
            Intent intent = new Intent(this, typeof(BootReceiver));

            intent.SetAction(BootReceiver.ACTION_RESTART_UPALARMSERVICE);
            PendingIntent sender = PendingIntent.GetBroadcast(ApplicationContext, 0, intent, 0);

            AlarmManager am = (AlarmManager)GetSystemService(AlarmService);

            am.Cancel(sender);
        }
示例#24
0
        private PendingIntent CreatePendintIntent(string entryMessage, string exitMessage)
        {
            Intent intent = new Intent();

            intent.SetAction(Constans.GeofenceIntent);
            intent.PutExtra(Constans.ExitMessage, exitMessage);
            intent.PutExtra(Constans.EntryMessage, entryMessage);

            var pendingIntent = PendingIntent.GetBroadcast(_context, requestId++, intent, PendingIntentFlags.UpdateCurrent);

            return(pendingIntent);
        }
示例#25
0
        public static void DeleteAlarmByManager(int id)
        {
            var alarmIntent = new Intent(Application.Context, typeof(AlarmReceiver));

            alarmIntent.SetFlags(ActivityFlags.IncludeStoppedPackages);
            alarmIntent.PutExtra("id", id);

            var alarmManager          = (AlarmManager)Application.Context.GetSystemService(Context.AlarmService);
            var toDeletePendingIntent = PendingIntent.GetBroadcast(Application.Context, id, alarmIntent, PendingIntentFlags.UpdateCurrent);

            alarmManager.Cancel(toDeletePendingIntent);
        }
示例#26
0
        /// <summary>
        /// Method to register the BackgroundReceiver class with the Alarm Manager
        /// </summary>
        public void RegisterAlarmManager()
        {
            // Start the alarm manager service
            var alarmIntent = new Intent(this, typeof(BackgroundReceiver));

            var pending = PendingIntent.GetBroadcast(this, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);

            var alarmManager = GetSystemService(AlarmService).JavaCast <AlarmManager>();

            // Set alarm for 300 seconds - 5 minutes
            alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 300 * 1000, pending);
        }
示例#27
0
        public void Cancel(int id)
        {
            var intent        = CreateIntent(id);
            var pendingIntent = PendingIntent.GetBroadcast(Application.Context, Convert.ToInt32(_randomNumber), intent, PendingIntentFlags.Immutable);
            var alarmManager  = GetAlarmManager();

            alarmManager.Cancel(pendingIntent);
            var notificationManager = NotificationManagerCompat.From(Application.Context);

            notificationManager.CancelAll();
            notificationManager.Cancel(id);
        }
示例#28
0
        protected virtual PendingIntent GetPendingIntent()
        {
            var intent = new Intent(this.context.AppContext, typeof(GpsBroadcastReceiver));

            intent.SetAction(GpsBroadcastReceiver.INTENT_ACTION);
            return(PendingIntent.GetBroadcast(
                       this.context.AppContext,
                       0,
                       intent,
                       PendingIntentFlags.UpdateCurrent
                       ));
        }
示例#29
0
        public void RegisterRestartServiceSchudle()
        {
            AlarmManager  alarm_mngr = (AlarmManager)context.GetSystemService(Context.AlarmService);
            Intent        intent     = new Intent("DroidVigia.DroidVigia.DroidVigia.SchudledAlarm");
            PendingIntent pintent    = PendingIntent.GetBroadcast(context, 0, intent, PendingIntentFlags.OneShot);
            var           pref_model = Global.GetAppPreferences(context);

            pref_model.Next_Schudle_Name = SchuldeReciver.START_SERVICE_SCHUDLE;
            long millis = 10000;

            alarm_mngr.Set(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + millis, pintent);
        }
示例#30
0
        private Notification CreateForNotifyHabitCount(Habit habit, TimeSpan countDown, bool isPause, bool isLastHabit)
        {
            var    context = Application.Context;
            string title   = $"{habit.Name}";
            string message = $"{CreateTimeToString.TimeCountToString(countDown)}";

            var fileName = habit.Image.Replace(".png", string.Empty);
            var imageId  = context.Resources.GetIdentifier(fileName, "drawable", context.PackageName);

            string Btn1String;

            if (isPause)
            {
                Btn1String = "카운트";
            }
            else
            {
                Btn1String = "일시정지";
            }

            string Btn2String;

            if (isLastHabit)
            {
                Btn2String = "완료";
            }
            else
            {
                Btn2String = "다음";
            }

            var actionIntent1 = CreateActionIntent("일시정지", habit.Id);
            var pIntent1      = PendingIntent.GetBroadcast(context, 100, actionIntent1, PendingIntentFlags.OneShot);

            var actionIntent2 = CreateActionIntent(Btn2String, habit.Id);
            var pIntent2      = PendingIntent.GetBroadcast(context, 100, actionIntent2, PendingIntentFlags.OneShot);

            var notificationBuilder = new NotificationCompat.Builder(context, COUNT_NOTIFICATION_CHANNEL_ID);
            var notification        = notificationBuilder.SetOngoing(false)
                                      .SetSmallIcon(imageId)
                                      .SetContentTitle(title)
                                      .SetContentText(message)
                                      .SetVibrate(new long[] { -1 })
                                      .SetPriority((int)NotificationImportance.Default)
                                      .SetVisibility(NotificationCompat.VisibilityPublic)
                                      .SetContentIntent(OpenAppIntent())
                                      .SetAutoCancel(false)
                                      .AddAction(0, Btn1String, pIntent1)
                                      .AddAction(0, Btn2String, pIntent2)
                                      .Build();

            return(notification);
        }