private void SetRepeatingAlarm(ICollection <string> numbers, bool isTest) { Intent receiverIntent = new Intent(this, typeof(AlarmReceiver)); AlarmManager alarmManager = (AlarmManager)GetSystemService(AlarmService); if (isTest) { PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 0, receiverIntent, PendingIntentFlags.CancelCurrent); int seconds = 5; alarmManager.Set(AlarmType.RtcWakeup, JavaSystem.CurrentTimeMillis() + (seconds * 1000), pendingIntent); myTextViewOutput.Text = $"Test Alarm set in {seconds} seconds."; } else { PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 1, receiverIntent, PendingIntentFlags.CancelCurrent); Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.TimeInMillis = (JavaSystem.CurrentTimeMillis()); calendar.Set(Java.Util.CalendarField.HourOfDay, 9); calendar.Set(Java.Util.CalendarField.Minute, 0); calendar.Set(Java.Util.CalendarField.Second, 0); alarmManager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent); myTextViewOutput.Text = "Repeating daily Alarm set. Begin at: " + calendar.Time.ToString(); } }
/// <summary> /// Converts the <see cref="Java.Lang.Character"/> type object to <see cref="DateTime"/> type. /// </summary> /// <param name="time"><see cref="Java.Util.Calendar"/> type object</param> /// <returns><see cref="DateTime"/> type object equivalent to argment</returns> public static DateTime ConvertToDateTime(Java.Util.Calendar time) => new DateTime( // Note : The range of Calender.Month is 0 (January) to 11 (December). time.Get(Java.Util.CalendarField.Year), time.Get(Java.Util.CalendarField.Month) + 1, time.Get(Java.Util.CalendarField.Date), time.Get(Java.Util.CalendarField.HourOfDay), time.Get(Java.Util.CalendarField.Minute), time.Get(Java.Util.CalendarField.Second), DateTimeKind.Local );
/// <summary> /// <see cref="MyWatchFaceEngine"/>クラスの新しいインスタンスを生成します。 /// </summary> /// <param name="owner"><see cref="CanvasWatchFaceService"/>クラスを継承したオブジェクトの参照</param> public MyWatchFaceEngine(CanvasWatchFaceService owner) : base(owner) { // CanvasWatchFaceServiceクラスを継承したオブジェクトの参照をセットします。 this.owner = owner; // 時刻を更新した時の処理を構成します。 updateTimeHandler = new Handler( message => { //#if DEBUG // if( Log.IsLoggable( logTag, LogPriority.Info ) ) { // Log.Info( logTag, $"Updating timer: Message = {message.What}" ); // } //#endif // Whatプロパティでメッセージを判別します。 switch (message.What) { case MessageUpdateTime: // TODO : 時刻の更新のメッセージの時の処理を入れます。 // ウォッチフェイスを再描画します。 Invalidate(); // タイマーを動作させるかどうかを判別します。 if (ShouldTimerBeRunning) { /* * Javaでは、System.currentTimeMillisメソッドで世界協定時(ミリ秒)を取得します。 * 一方C#では、DateTime.UtcNow.Ticksプロパティで世界協定時(100ナノ秒)取得し、 * TimeSpan.TicksPerMillisecondフィールドで割って、ミリ秒の値を求めます。 */ long timeMillseconds = DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond; // delayMs = 更新間隔 - ( 現在時刻(ミリ秒) % 更新間隔) -> 更新間隔との差 long delayMilliseconds = InteractiveUpdateRateMilliseconds - (timeMillseconds % InteractiveUpdateRateMilliseconds); // UpdateTimeHandlerにメッセージをセットします。 // SendEmptyMessageDelayedメソッドは指定した時間後にメッセージを発行します。 updateTimeHandler.SendEmptyMessageDelayed(MessageUpdateTime, delayMilliseconds); } break; } } ); // TimeZoneReceiverのインスタンスを生成します。 timeZoneReceiver = new ActionExecutableBroadcastReceiver( intent => { // TODO : ブロードキャストされた Intent.ActionTimezoneChanged のIntentオブジェクトを受け取った時に実行する処理を入れます。 // IntentからタイムゾーンIDを取得して、Timeオブジェクトのタイムゾーンに設定し、現在時刻を取得します。 // intent.GetStringExtra( "time-zone" )の戻り値はタイムゾーンのIDです。 // Time ( Android ) //nowTime.Clear( intent.GetStringExtra( "time-zone" ) ); //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone"))); // DateTime ( C# ) //nowTime = DateTime.Now; }, // Intentフィルターに「ActionTimezoneChanged」を指定します。 Intent.ActionTimezoneChanged ); }
void OneShotClick(object sender, EventArgs e) { // When the alarm goes off, we want to broadcast an Intent to our // BroadcastReceiver. Here we make an Intent with an explicit class // name to have our own receiver (which has been published in // AndroidManifest.xml) instantiated and called, and then create an // IntentSender to have the intent executed as a broadcast. int timeHour = Convert.ToInt32(timeselector.Hour); int timeMinutes = Convert.ToInt32(timeselector.Minute); long q = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); AlarmManager am = (AlarmManager)GetSystemService(AlarmService); Intent oneshotIntent = new Intent(this, typeof(OneShotAlarm)); PendingIntent source = PendingIntent.GetBroadcast(this, 0, oneshotIntent, 0); vibro.Vibrate(500); Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.Set(CalendarField.HourOfDay, timeHour); calendar.Set(CalendarField.Minute, timeMinutes); am.Set(AlarmType.RtcWakeup, calendar.TimeInMillis, source); // Tell the user about what we did. if (repeating != null) repeating.Cancel(); repeating = Toast.MakeText(this, Resource.String.one_shot_scheduled, ToastLength.Long); repeating.Show(); }
static public void AddAlarmEvent(int seconds = 60) { DateTime alarmtime = DateTime.Now.AddSeconds(seconds); Intent alarmIntent = new Intent(Android.App.Application.Context, typeof(AlarmReceiver)); PendingIntent pendingIntent = PendingIntent.GetBroadcast(Android.App.Application.Context, AlarmId++, alarmIntent, PendingIntentFlags.UpdateCurrent); AlarmManager alarmManager = (AlarmManager)Android.App.Application.Context.GetSystemService(Context.AlarmService); Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis(); calendar.Set(alarmtime.Year, alarmtime.Month - 1, alarmtime.Day, alarmtime.Hour, alarmtime.Minute, alarmtime.Second); if (Build.VERSION.SdkInt < Android.OS.BuildVersionCodes.M) { if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat) { //API 19 이상 API 23미만 alarmManager.SetExact(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent); } else { //API 19미만 alarmManager.Set(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent); } } else { //API 23 이상 alarmManager.SetExactAndAllowWhileIdle(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent); } }
/// <summary> /// Creates a new instance of <see cref="MyWatchFaceEngine"/> class. /// </summary> /// <param name="owner">Reference to a <see cref="CanvasWatchFaceService"/> object</param> public MyWatchFaceEngine(CanvasWatchFaceService owner) : base(owner) { // Sets a reference to an object that inherits CanvasWatchFaceService class. this.owner = owner; // Configures processing when updating time. updateTimeHandler = new Handler( message => { #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"Updating timer: Message = {message.What}"); } #endif // Determines the message ID with the What property. switch (message.What) { case MessageUpdateTime: // TODO: Writes here, the processing at the time of the time update message. // Redraws the watch face. Invalidate(); // Determinea whether to activate the timer. if (ShouldTimerBeRunning) { /* * In Java, gets Universal Time Coordinated (milli-seconds) by System.currentTimeMillis method. * Meanwhile, in C#, gets Universal Time Coordinated (100 nano-seconds) by DateTime.UtcNow.Ticks property, * and divides by TimeSpan.TicksPerMillisecond field to calculate the value in milliseconds. */ long timeMillseconds = DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond; // delayMilliseconds = [Update interval] - ([Current time( milliseconds )] % [Update interval] ) -> Difference from update interval long delayMilliseconds = InteractiveUpdateRateMilliseconds - (timeMillseconds % InteractiveUpdateRateMilliseconds); // Sets the message in UpdateTimeHandler. updateTimeHandler.SendEmptyMessageDelayed(MessageUpdateTime, delayMilliseconds); } break; } } ); // Creates an instance of ActionExecutableBroadcastReceiver. timeZoneReceiver = new ActionExecutableBroadcastReceiver( intent => { // TODO: Writes here, process to be executed when receiving Intent object of broadcasted with Intent.ActionTimezoneChanged. // Gets the time zone ID from the Intent, set it as the time zone of the Time object, and get the current time. // Time ( Android ) //nowTime.Clear( intent.GetStringExtra( "time-zone" ) ); //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone"))); // DateTime ( C# ) //nowTime = DateTime.Now; }, // Specifies "android.intent.action.TIMEZONE_CHANGED" for the Intent filter. Intent.ActionTimezoneChanged ); }
private long GetTimeDifferenceInMilliseconds(DateTime date) { Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis(); calendar.Set(date.Year, date.Month - 1, date.Day, date.Hour, date.Minute, 0); return(calendar.TimeInMillis); }
public override bool Match(object @object) { NeoDatis.Odb.Test.VO.School.History s = (NeoDatis.Odb.Test.VO.School.History)@object; Java.Util.Calendar c = Java.Util.Calendar.GetInstance(); c.Set(Java.Util.Calendar.Month, 6); c.Set(Java.Util.Calendar.Year, 2005); return(s.GetTeacher().GetName().Equals(name) && s.GetDate().Millisecond > (c.GetTime ().Millisecond)); }
/// <summary> /// Invoke when drawing a watch face. /// </summary> /// <param name="canvas"><see cref="Canvas"/> object for drawing on the watch face</param> /// <param name="bounds">Object storing the screen size</param> public override void OnDraw(Canvas canvas, Rect bounds) { // TODO: Writes here, process of acquiring the current time and drawing the watch face. // Gets current time. // Time ( Android ) //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone); // DateTime ( C# ) //nowTime = DateTime.Now; #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}"); } #endif // Draws the background. // Determines whether in ambient mode. if (IsInAmbientMode) { // In ambient mode, fills with black color. canvas.DrawColor(Color.Black); } else { // Otherwise, draws the background graphics. canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint); } // Calculates the center XY coordinates. float centerX = bounds.Width() / 2.0f; float centerY = bounds.Height() / 2.0f; // Calculates the length of the hands. secondHand.Length = centerX - 20; minuteHand.Length = centerX - 40; hourHand.Length = centerX - 80; // Draws the hour hand. hourHand.SetTime(nowTime); canvas.DrawLine(centerX, centerY, centerX + hourHand.X, centerY + hourHand.Y, hourHand.Paint); // Draws the minute hand. minuteHand.SetTime(nowTime); canvas.DrawLine(centerX, centerY, centerX + minuteHand.X, centerY + minuteHand.Y, minuteHand.Paint); // Determines whether in ambient mode. if (!IsInAmbientMode) { // In ambient mode, draws the second hand. secondHand.SetTime(nowTime); canvas.DrawLine(centerX, centerY, centerX + secondHand.X, centerY + secondHand.Y, secondHand.Paint); } }
/// <summary> /// ウォッチフェイスの描画時に実行されます。 /// </summary> /// <param name="canvas">ウォッチフェイスに描画するためのキャンバスオブジェクト</param> /// <param name="bounds">画面のサイズを格納するオブジェクト</param> public override void OnDraw(Canvas canvas, Rect bounds) { // TODO : 現在時刻を取得し、ウォッチフェイスを描画する処理を入れます。 // 現在時刻にセットします。 // Time ( Android ) //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone); // DateTime ( C# ) //nowTime = DateTime.Now; #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}"); } #endif // 背景を描画します。 // アンビエントモードであるかどうか判別します。 if (IsInAmbientMode) { // アンビエントモードの時は、黒色で塗りつぶします。 canvas.DrawColor(Color.Black); } else { // そうでない時は、背景画像を描画します。 canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint); } // 中心のXY座標を求めます。 float centerX = bounds.Width() / 2.0f; float centerY = bounds.Height() / 2.0f; // 針の長さを求めます。 secondHand.Length = centerX - 20; minuteHand.Length = centerX - 40; hourHand.Length = centerX - 80; // 時針を描画します。 hourHand.SetTime(nowTime); canvas.DrawLine(centerX, centerY, centerX + hourHand.X, centerY + hourHand.Y, hourHand.Paint); // 分針を描画します。 minuteHand.SetTime(nowTime); canvas.DrawLine(centerX, centerY, centerX + minuteHand.X, centerY + minuteHand.Y, minuteHand.Paint); // アンビエントモードでないかどうかを判別します。 if (!IsInAmbientMode) { // 分針を描画します。 secondHand.SetTime(nowTime); canvas.DrawLine(centerX, centerY, centerX + secondHand.X, centerY + secondHand.Y, secondHand.Paint); } }
public static long GenerateNotifcationTimeStamp(DateTime startDate) { var schedule = startDate; Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.Set(Java.Util.CalendarField.HourOfDay, schedule.Hour); calendar.Set(Java.Util.CalendarField.Minute, schedule.Minute); calendar.Set(Java.Util.CalendarField.Second, 00); return(calendar.TimeInMillis); }
public override Dialog OnCreateDialog(Bundle savedInstanceState) { Java.Util.Calendar c = Java.Util.Calendar.Instance; int hour = c.Get(Java.Util.CalendarField.HourOfDay); int minute = c.Get(Java.Util.CalendarField.Minute); bool is24HourView = true; TimePickerDialog dialog = new TimePickerDialog(Activity, this, hour, minute, is24HourView); return(dialog); }
public override Dialog OnCreateDialog(Bundle savedInstanceState) { base.OnCreateDialog(savedInstanceState); calendar_ = Java.Util.Calendar.Instance; datePicker_ = new DatePickerDialog(context_); datePicker_.DateSet += (sender, e) => { var str = e.Date.ToLocalTime().ToString("YYYY-MM-DD HH:mm:ss"); onDataSelectChanged(e); }; calendar_.Get(Java.Util.CalendarField.Year); calendar_.Get(Java.Util.CalendarField.Month); calendar_.Get(Java.Util.CalendarField.DayOfMonth); return(datePicker_); }
public void Remind(DateTime dateTime, int ID, Intent alarmIntent) { PendingIntent pendingIntent = PendingIntent.GetBroadcast(Forms.Context, ID, alarmIntent, PendingIntentFlags.UpdateCurrent); AlarmManager alarmManager = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService); Java.Util.Calendar cal = Java.Util.Calendar.Instance; cal.Set(Java.Util.CalendarField.Month, dateTime.Month); cal.Set(Java.Util.CalendarField.DayOfMonth, dateTime.Day); cal.Set(Java.Util.CalendarField.HourOfDay, dateTime.Hour); cal.Set(Java.Util.CalendarField.Minute, dateTime.Minute); cal.Set(Java.Util.CalendarField.Second, dateTime.Second); alarmManager.Set(AlarmType.RtcWakeup, cal.TimeInMillis, pendingIntent); }
public void SetAlarm(Context context, int hh, int mm) { Intent intent = new Intent(context, this.Class); PendingIntent pi = PendingIntent.GetBroadcast(context, 0, intent, 0); Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.Set(Java.Util.CalendarField.HourOfDay, hh); calendar.Set(Java.Util.CalendarField.Minute, mm); calendar.Set(Java.Util.CalendarField.Second, 0); AlarmManager am = (AlarmManager)context.GetSystemService(Context.AlarmService); am.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pi); }
private void CalendarDaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e) { var currentDateTime = FromUnixTime(e.Date.Time).ToLocalTime(); Java.Util.Date date = e.Date; Java.Util.Calendar cal = Java.Util.Calendar.GetInstance(Java.Util.Locale.English); cal.Time = date; int day = cal.Get(Java.Util.CalendarField.DayOfMonth); CalendarDaySlotBase layout = new CalendarDaySlotBase(ApplicationContext); layout.SetGravity(GravityFlags.Center); layout.SetVerticalGravity(GravityFlags.Center); layout.Orientation = Orientation.Vertical; layout.SetPadding(5, 5, 5, 5); LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); layout.LayoutParameters = linearLayoutParams; TextView tv = new TextView(ApplicationContext); tv.Gravity = GravityFlags.Center; tv.Text = day.ToString(); if (currentDateTime.Date == DateTime.Now.Date) { tv.SetTextColor(Android.Graphics.Color.Red); } if (e.AdjacentDay) { tv.SetTextColor(Android.Graphics.Color.DarkGray); } layout.AddView(tv); if (_events != null && _events.Count != 0) { for (int i = 0; i < _events.Count; i++) { var startDate = _events[i].StartDateTime(); if (startDate.Date == currentDateTime.Date) { tv.SetBackgroundColor(GROUP_COLOR); } } } e.DaySlot = layout; }
/// <summary> /// ウォッチフェイスの表示・非表示が切り替わった時に実行します。 /// </summary> /// <param name="visible">ウォッチフェイスの表示・非表示</param> public override void OnVisibilityChanged(bool visible) { // ベースクラスのOnVisibilityChangedメソッドを実行します。 base.OnVisibilityChanged(visible); #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"{nameof( OnVisibilityChanged )}: Visible = {visible}"); } #endif // ウォッチフェイスの表示・非表示を判別します。 if (visible) { if (timeZoneReceiver == null) { timeZoneReceiver = new ActionExecutableBroadcastReceiver( intent => { // Time ( Android ) //nowTime.Clear( intent.GetStringExtra( "time-zone" ) ); //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone"))); // DateTime ( C# ) //nowTime = DateTime.Now; }, Intent.ActionTimezoneChanged ); } // タイムゾーン用のレシーバーを登録します。 timeZoneReceiver.IsRegistered = true; // ウォッチフェイスが非表示の時にタイムゾーンが変化した場合のために、タイムゾーンを更新します。 // Time ( Android ) //nowTime.Clear( Java.Util.TimeZone.Default.ID ); //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.Default); // DateTime ( C# ) //nowTime = DateTime.Now; } else { // タイムゾーン用のレシーバーを登録解除します。 timeZoneReceiver.IsRegistered = false; } // タイマーの動作を更新します。 UpdateTimer(); }
/// <summary> /// Invoked when the watch face is switched between display / non-display. /// </summary> /// <param name="visible">Display / non-display of watch face</param> public override void OnVisibilityChanged(bool visible) { base.OnVisibilityChanged(visible); #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"{nameof( OnVisibilityChanged )}: Visible = {visible}"); } #endif // Determines whether the watch face is displayed or not. if (visible) { if (timeZoneReceiver == null) { timeZoneReceiver = new ActionExecutableBroadcastReceiver( intent => { // Time ( Android ) //nowTime.Clear( intent.GetStringExtra( "time-zone" ) ); //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone"))); // DateTime ( C# ) //nowTime = DateTime.Now; }, Intent.ActionTimezoneChanged ); } // Register the BroadcastReciever for the time zone. timeZoneReceiver.IsRegistered = true; // Updates time in case the time zone changes when the watch face is hidden. // Time ( Android ) //nowTime.Clear( Java.Util.TimeZone.Default.ID ); //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.Default); // DateTime ( C# ) //nowTime = DateTime.Now; } else { // Unregister the BroadcastReciever for the time zone. timeZoneReceiver.IsRegistered = false; } UpdateTimer(); }
public static DateTime DateTimeFromJava(Java.Util.Calendar d) { return(new DateTime( d.Get(Java.Util.CalendarField.Year), d.Get(Java.Util.CalendarField.Month) + 1, d.Get(Java.Util.CalendarField.DayOfMonth), d.Get(Java.Util.CalendarField.HourOfDay), d.Get(Java.Util.CalendarField.Minute), d.Get(Java.Util.CalendarField.Second), d.Get(Java.Util.CalendarField.Millisecond), DateTimeKind.Utc)); var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); return(epoch.AddMilliseconds(d.Time.Time)); }
private HorizontalCalendarClass BuildHorizontalCalendarClass(Java.Util.Calendar start, Java.Util.Calendar end, Java.Util.Calendar @default) { return(new HorizontalCalendarClass.Builder(this, Resource.Id.calendarView) .Range(start, end) .DatesNumberOnScreen(5) .Configure() .FormatTopText("MMM") .FormatMiddleText("dd") .FormatBottomText("EEE") .ShowTopText(true) .ShowBottomText(true) .TextColor(Color.LightGray, Color.White) .ColorTextMiddle(Color.LightGray, Color.ParseColor("#FF4081")) .End() .DefaultSelectedDate(@default) .Build()); }
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 OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.Remedio); Button btnSalvar = FindViewById <Button>(Resource.Id.remedio_btn_salvar); btnSalvar.Click += delegate { Java.Util.Calendar calendar = Java.Util.Calendar.GetInstance(Java.Util.Locale.Default); string data = calendar.Time.Day + "/" + calendar.Time.Month + "/" + calendar.Time.Year + " " + calendar.Time.Hours + ":" + calendar.Time.Minutes; Remedio remedio = new Remedio(0, data); DataBase db = new DataBase(); db.CriarDatabase("remedio"); AlertDialog.Builder alert = new AlertDialog.Builder(this); if (db.AddRegistro(remedio)) { alert.SetTitle("Sucessful Registered!1"); alert.SetPositiveButton("Yes", (senderAlert, args) => { StartActivity(typeof(RemediosTomadosActivity)); Finish(); }); RunOnUiThread(() => { alert.Show(); }); } else { alert.SetTitle("Problem!!1"); alert.SetPositiveButton("Yes", (senderAlert, args) => { }); RunOnUiThread(() => { alert.Show(); }); } }; }
public void SetAlarm(int hour, int minute, string title, string message) { Intent myintent = new Intent(Android.App.Application.Context, typeof(AlarmReceiver)); myintent.PutExtra("message", message); myintent.PutExtra("title", title); PendingIntent pendingintent = PendingIntent.GetBroadcast(Android.App.Application.Context, 0, myintent, PendingIntentFlags.UpdateCurrent); Java.Util.Date date = new Java.Util.Date(); Java.Util.Calendar cal = Java.Util.Calendar.Instance; cal.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis(); cal.Set(Java.Util.CalendarField.HourOfDay, hour); cal.Set(Java.Util.CalendarField.Minute, minute); cal.Set(Java.Util.CalendarField.Second, 0); AlarmManager alarmManager = Android.App.Application.Context.GetSystemService(Android.Content.Context.AlarmService) as AlarmManager; alarmManager.Set(AlarmType.RtcWakeup, cal.TimeInMillis, 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 static void CheckAlarm(Context context) { var savedSettings = Application.Context.GetSharedPreferences("SavedSettings", FileCreationMode.Private); var savedSettingsEdit = savedSettings.Edit(); int hour = savedSettings.GetInt("hour", 20); int minute = savedSettings.GetInt("minute", 30); bool alarmUp = (PendingIntent.GetBroadcast(context, 0, new Intent(context, typeof(AlarmNotificationReceiver)), PendingIntentFlags.NoCreate) != null); bool alarmNeedsUpdate = savedSettings.GetBoolean("alarmNeedsUpdate", false); AlarmManager manager = (AlarmManager)context.ApplicationContext.GetSystemService(Context.AlarmService); Intent myIntent; PendingIntent pendingIntent; myIntent = new Intent(context, typeof(AlarmNotificationReceiver)); pendingIntent = PendingIntent.GetBroadcast(context, 0, myIntent, 0); if (!alarmUp) { Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.Set(Java.Util.CalendarField.HourOfDay, hour); calendar.Set(Java.Util.CalendarField.Minute, minute); manager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent); } if (alarmNeedsUpdate) { manager.Cancel(pendingIntent); myIntent = new Intent(context, typeof(AlarmNotificationReceiver)); pendingIntent = PendingIntent.GetBroadcast(context, 0, myIntent, 0); Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.Set(Java.Util.CalendarField.HourOfDay, hour); calendar.Set(Java.Util.CalendarField.Minute, minute); manager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent); savedSettingsEdit.PutBoolean("alarmNeedsUpdate", false); savedSettingsEdit.Commit(); } }
/// <summary> /// Invoke when drawing a watch face. /// </summary> /// <param name="canvas"><see cref="Canvas"/> object for drawing on the watch face</param> /// <param name="bounds">Object storing the screen size</param> public override void OnDraw(Canvas canvas, Rect bounds) { // TODO: Writes here, process of acquiring the current time and drawing the watch face. // Gets current time. // Time ( Android ) //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone); // DateTime ( C# ) //nowTime = DateTime.Now; #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}"); } #endif // Draws the background. // Determines whether in ambient mode. if (IsInAmbientMode) { // In ambient mode, fills with black color. canvas.DrawColor(Color.Black); } else { // Otherwise, draws the background graphics. canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint); } // Draws the text of the current time. canvas.DrawText( WatchfaceUtility.ConvertToDateTime(nowTime).ToString(isAmbient ? "HH:mm" : "HH:mm:ss"), digitalTimeText.XOffset, digitalTimeText.YOffset, digitalTimeText.Paint ); }
public void CreaNotifica(Posizione posizione, DateTime dateTime) { if (!channelInitialized) { CreateNotificationChannel(); } Intent intent = new Intent(AndroidApp.Context, typeof(NotificationReceiver)); intent.PutExtra(TitleKey, CostantiDominio.TITOLO_NOTIFICA); intent.PutExtra(MessageKey, CostantiDominio.MESSAGGIO_NOTIFICA); intent.PutExtra(IdNotifica, posizione.Id); PendingIntent pendingIntent = PendingIntent.GetBroadcast(AndroidApp.Context, pendingIntentId, intent, PendingIntentFlags.OneShot); Java.Util.Calendar calendar = Java.Util.Calendar.Instance; calendar.Set(Java.Util.CalendarField.HourOfDay, dateTime.Hour); calendar.Set(Java.Util.CalendarField.Minute, dateTime.Minute); calendar.Set(Java.Util.CalendarField.Second, 0); AlarmManager alarmManager = AndroidApp.Context.GetSystemService(Context.AlarmService) as AlarmManager; alarmManager.Set(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent); }
/// <summary> /// ウォッチフェイスの描画時に実行されます。 /// </summary> /// <param name="canvas">ウォッチフェイスに描画するためのキャンバスオブジェクト</param> /// <param name="bounds">画面のサイズを格納するオブジェクト</param> public override void OnDraw(Canvas canvas, Rect bounds) { // TODO : 現在時刻を取得し、ウォッチフェイスを描画する処理を入れます。 // 現在時刻にセットします。 // Time ( Android ) //nowTime.SetToNow(); // Calendar ( Java ) nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone); // DateTime ( C# ) //nowTime = DateTime.Now; #if DEBUG if (Log.IsLoggable(logTag, LogPriority.Info)) { Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}"); } #endif // 背景を描画します。 // アンビエントモードであるかどうか判別します。 if (IsInAmbientMode) { // アンビエントモードの時は、黒色で塗りつぶします。 canvas.DrawColor(Color.Black); } else { // そうでない時は、背景画像を描画します。 canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint); } canvas.DrawText( WatchfaceUtility.ConvertToDateTime(nowTime).ToString(isAmbient ? "HH:mm" : "HH:mm:ss"), digitalTimeText.XOffset, digitalTimeText.YOffset, digitalTimeText.Paint ); }
public void SetAlarm(int hour, int minute, string title, string message, int mode) { Intent myintent; if (mode == 1) { myintent = new Intent(Android.App.Application.Context, typeof(NotificationAlarmReceiver)); } else { myintent = new Intent(Android.App.Application.Context, typeof(AlarmReceiver)); } myintent.PutExtra("message", message); myintent.PutExtra("title", title); int _id = DateTime.Now.Millisecond; TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)); long millis = (long)ts.TotalMilliseconds; int i = (int)millis; PendingIntent pendingintent = PendingIntent.GetBroadcast(Android.App.Application.Context, i, myintent, PendingIntentFlags.OneShot); Java.Util.Date date = new Java.Util.Date(); Java.Util.Calendar cal = Java.Util.Calendar.Instance; cal.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis(); cal.Set(Java.Util.CalendarField.HourOfDay, hour); cal.Set(Java.Util.CalendarField.Minute, minute); cal.Set(Java.Util.CalendarField.Second, 0); AlarmManager alarmManager = Android.App.Application.Context.GetSystemService(Android.Content.Context.AlarmService) as AlarmManager; alarmManager.Set(AlarmType.RtcWakeup, cal.TimeInMillis, pendingintent); Toast.MakeText(Android.App.Application.Context, "Alarm Created!", ToastLength.Long).Show(); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.NuevoCaballo); new ShareInside().CopyDocuments("RazasGender.sqlite", "RazasGender.db"); var txtHorseName = FindViewById <EditText>(Resource.Id.txtHorseName); Foto = FindViewById <Refractored.Controls.CircleImageView>(Resource.Id.btnFoto); Foto.Click += delegate { var intent = new Intent(MediaStore.ActionImageCapture); intent.PutExtra(MediaStore.ExtraOutput, RutaArchivo); StartActivityForResult(intent, 1, savedInstanceState); }; var txtBirthDay = FindViewById <TextView>(Resource.Id.txtBirthDay); txtBirthDay.Click += delegate { Java.Util.Calendar calendar = Java.Util.Calendar.Instance; int year = calendar.Get(Java.Util.CalendarField.Year); int month = calendar.Get(Java.Util.CalendarField.Month); int day_of_month = calendar.Get(Java.Util.CalendarField.DayOfMonth); DatePickerDialog dialog; dialog = new DatePickerDialog(this, Resource.Style.ThemeOverlay_AppCompat_Dialog_Alert, onDateSetListener, year, month, day_of_month); dialog.Show(); }; onDateSetListener = new PickerDate(txtBirthDay); var txtGender = FindViewById <TextView>(Resource.Id.txtGender); txtGender.Click += delegate { Dialog alertar = new Dialog(this, Resource.Style.Theme_Dialog_Translucent); alertar.RequestWindowFeature(1); alertar.SetCancelable(true); alertar.SetContentView(Resource.Layout.DialogoGender); List <string> consulta = new List <string>() { GetText(Resource.String.Filly), GetText(Resource.String.Gelding), GetText(Resource.String.Mare), GetText(Resource.String.Stallion) }; textListView = alertar.FindViewById <ListView>(Resource.Id.Listagender); textListView.Adapter = new AdaptadorGender(this, consulta, alertar, txtGender); alertar.Show(); }; var txtBreed = FindViewById <TextView>(Resource.Id.txtBreed); txtBreed.Click += delegate { Dialog alertar = new Dialog(this, Resource.Style.Theme_Dialog_Translucent); alertar.RequestWindowFeature(1); alertar.SetCancelable(true); alertar.SetContentView(Resource.Layout.DialogoRazas); var con = new SQLiteConnection(System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "RazasGender.sqlite")); var consulta = con.Query <Modelos.Razas>("select * from Razas", new Modelos.Razas().id_raza); textListView = alertar.FindViewById <ListView>(Resource.Id.ListaRazas); textListView.Adapter = new AdaptadorRazas(this, consulta, alertar, txtBreed); buscar = alertar.FindViewById <EditText>(Resource.Id.buscar); buscar.TextChanged += (object sender, TextChangedEventArgs e) => { var consulta2 = con.Query <Modelos.Razas>("select * from Razas where raza like '" + buscar.Text + "%'", new Modelos.Razas().id_raza); textListView.Adapter = new AdaptadorRazas(this, consulta2, alertar, txtBreed); }; alertar.Show(); }; var txtHeigth = FindViewById <EditText>(Resource.Id.txtHeigthHorse); var txtWeigth = FindViewById <EditText>(Resource.Id.txtWeigthHorse); var txtOat = FindViewById <EditText>(Resource.Id.txtOatHorse); var btnAtras = FindViewById <ImageView>(Resource.Id.btnAtras); btnAtras.Click += delegate { }; var btnGuardar = FindViewById <ImageView>(Resource.Id.btnGuardar); btnGuardar.Click += delegate { //if ( == "") //{ //} }; }