|
|
- using Android.App;
- using Android.Content;
- using Android.OS;
- using GMCabsDriverAssistant.Services;
- using GMCabsDriverAssistantSolution.Platforms.Android;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
-
- [assembly: Dependency(typeof(AndroidAlarmReceiver))]
- namespace GMCabsDriverAssistantSolution.Platforms.Android
- {
- [BroadcastReceiver(Name = "au.com.gmcabs.driverassistant.app.AndroidAlarmReceiver", Enabled = true, Exported = true, DirectBootAware = true)]
- public class AndroidAlarmReceiver : BroadcastReceiver, IAlarmService
- {
- [Obsolete]
- public override void OnReceive(Context context, Intent intent)
- {
- string foregroundChannelId = "GMCabsForeGroundServiceRunningChannel";
- var message = "Foreground Service Is On";
- var title = "Service Status";
- var resultIntent = new Intent(context, typeof(MainActivity));
- resultIntent.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask);
- var pendingIntentFlags = (Build.VERSION.SdkInt >= BuildVersionCodes.S)
- ? PendingIntentFlags.UpdateCurrent | PendingIntentFlags.Mutable
- : PendingIntentFlags.UpdateCurrent;
-
- var pending = PendingIntent.GetActivity(context, 0,
- resultIntent,
- pendingIntentFlags);
-
- var builder =
- new Notification.Builder(context)
- .SetSmallIcon(Resource.Drawable.ic_stat_ic_notification)
- //.SetColor(global::Android.App.Application.Context.GetColor(Resource.Color.color_notification_icon))
- .SetContentTitle(title)
- .SetContentText(message)
- .SetPriority((int)NotificationImportance.Max)
- .SetAutoCancel(true)
- .SetTimeoutAfter(60000);
-
- builder.SetContentIntent(pending);
- var notification = builder.Build();
- var notifManager = global::Android.App.Application.Context.GetSystemService(global::Android.Content.Context.NotificationService) as NotificationManager;
-
- if (global::Android.OS.Build.VERSION.SdkInt >= global::Android.OS.BuildVersionCodes.O)
- {
- var notificationChannel = new NotificationChannel(foregroundChannelId, "GMCabsAlarmManagerNotification", NotificationImportance.Low);
- notificationChannel.Importance = NotificationImportance.Low;
- notificationChannel.EnableLights(true);
- notificationChannel.EnableVibration(true);
- notificationChannel.SetShowBadge(true);
- notificationChannel.SetVibrationPattern(new long[] { 100, 200, 300 });
- if (builder != null)
- {
- builder.SetChannelId(foregroundChannelId);
- notifManager.CreateNotificationChannel(notificationChannel);
- }
- }
- notifManager.Notify(DateTime.Now.Millisecond, notification);
- }
-
- public void StartMyAlarmService()
- {
- var alarmIntent = new Intent(global::Android.App.Application.Context, typeof(AndroidAlarmReceiver));
- var pendingIntentFlags = (Build.VERSION.SdkInt >= BuildVersionCodes.S)
- ? PendingIntentFlags.UpdateCurrent | PendingIntentFlags.Mutable
- : PendingIntentFlags.UpdateCurrent;
-
- var pending = PendingIntent.GetBroadcast(global::Android.App.Application.Context, 0, alarmIntent, pendingIntentFlags);
- var alarmManager = (AlarmManager)global::Android.App.Application.Context.GetSystemService(Context.AlarmService);
- alarmManager.Set(AlarmType.ElapsedRealtime, SystemClock.ElapsedRealtime() + 1 * 1000, pending);
-
- }
- }
- }
|