I am insert multiple Alarms ,but after mobile restart its not working.
TodoActivity.cs
{
Intent alarmIntent1 = new Intent(context, typeof(AlarmReceiver));
alarmManager = (AlarmManager)context.GetSystemService(Context.AlarmService);
var dtBasis = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
Intent alarmIntent = new Intent(context, typeof(AlarmReceiver));
alarmIntent.PutExtra("title", "To Do");
alarmIntent.PutExtra("message", Notifi.Description.ToString());
var dateString = AlaramDateTime.ToString("hh:mm tt, dddd dd MMMM");
alarmIntent.PutExtra("date", dateString);
var dateString1 = AlaramGetDueDateTime.ToString("hh:mm tt, dddd dd MMMM");
alarmIntent.PutExtra("duedatetime", dateString1);
alarmIntent.PutExtra("AlarmID", Notifi.NotificationId.ToString());
PendingIntent pendingIntent = PendingIntent.GetBroadcast(context, Notifi.NotificationId, alarmIntent, PendingIntentFlags.UpdateCurrent);
var firstTime = (long)Notifi.NotificationDateTime.ToUniversalTime().Subtract(dtBasis).TotalMilliseconds;
alarmManager.Set(AlarmType.RtcWakeup, firstTime, pendingIntent);
}
AlarmReceiver.cs
[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionBootCompleted })]
public class AlarmReceiver : BroadcastReceiver
{
DateTime date, date1;
private static Intent notIntent;
public static List<LanguageCode> Language = new List<LanguageCode>();
private static List<Timeformat> timeformat = new List<Timeformat>();
public override void OnReceive(Context context, Intent intent)
{
try
{
if ((intent.Action != null) && (intent.Action == Intent.ActionBootCompleted))
{
logger.Trace("ALARAM ActionBootCompleted");
// context.StartService(new Intent(context, typeof(AlarmService)));
}
logger.Trace("ALARAM");
Context mContext = Android.App.Application.Context;
AppPreferences ap = new AppPreferences(mContext);
var message = intent.GetStringExtra("message");
var title = intent.GetStringExtra("title");
var MediID = intent.GetStringExtra("MediID");
var Time = intent.GetStringExtra("date");
var Alarmid = intent.GetStringExtra("AlarmID");
var dueTime = intent.GetStringExtra("duedatetime");
notIntent = new Intent(context, typeof(MainActivity));
id = Resource.Drawable.ic_blkreminder;
notIntent.PutExtra("Title", title);
notIntent.PutExtra("Message", message);
notIntent.PutExtra("AlarmTime", Time);
notIntent.PutExtra("MedicineAlarmID", Alarmid);
notIntent.PutExtra("DueDateTime", dueTime);
PendingIntent contentIntent = PendingIntent.GetActivity(context, 0, notIntent, PendingIntentFlags.CancelCurrent);
Notification.Builder builder;
Notification.BigTextStyle textStyle = new Notification.BigTextStyle();
builder = new Notification.Builder(context)
.SetSmallIcon(id)
.SetContentTitle(alatit)
.SetDefaults(NotificationDefaults.Sound)
.SetContentText(message)
.SetAutoCancel(true)
.SetContentIntent(contentIntent);
builder.SetStyle(textStyle);
builder.SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Ringtone));
builder.SetLargeIcon(BitmapFactory.DecodeResource(context.Resources, Resource.Drawable.SmdLogo));
Notification notification = builder.Build();
NotificationManager mNotificationManager = (NotificationManager)context.GetSystemService(Context.NotificationService);
// Turn on vibrate:
notification.Flags |= NotificationFlags.Insistent;
mNotificationManager.Notify(1, notification);
}
catch(Exception ex)
{
logger.Trace(ex.ToString());
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.Smart.Smart" android:versionCode="1" android:versionName="1.0" android:installLocation="internalOnly">
<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:label="Smart"
android:icon="@drawable/SMART"
android:hardwareAccelerated="false"
android:largeHeap="true">
<!--<service android:name=".AlarmService"/>-->
<!--<receiver android:name=".AlarmReceiver"></receiver>-->
<receiver android:name=".AlarmReceiver" android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
</intent-filter>
</receiver>
</application>
</manifest>