2017-08-14 16 views
0

からタイマーはそれが正しく機能とタイマー機能を以下のコードは、どのように私はアンドロイドを使用して、タイマーを作成したアンドロイドのAlarmClockクラス

// This method is called to start the Timer from Androids Alarm Clock class 
private void StartAlarmClockTimer() 
{ 
    Intent alarmIntent = new Intent(Android.Provider.AlarmClock.ActionSetTimer); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraLength, 5); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraVibrate, true); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraMessage, "Custom Text!"); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraSkipUi, true); 
    alarmIntent.AddFlags(ActivityFlags.NewTask); 
    StartActivity(alarmIntent); 
} 

を使用してAlarmClockクラスで構築キャンセルします。私が持っている問題は、そのタイマーを途中でキャンセルする方法です。私は何とかタイマーを検索し、それを却下する必要がありますか?

https://developer.android.com/reference/android/provider/AlarmClock.html

答えて

1

AlarmClockクラスは、このための公共のアクションを公開していませんので、プログラムでこれを行うにはサポートされている方法はありません。 UIを介してユーザーが行うことが期待されます。さらに制御したい場合は、AlaramManagerを使用し、独自のアラームを設定/クリアします。

編集:このような

使用法:答えを

AlarmManager manager; 
Intent alarmIntent; 
PendingIntent pendingIntent; 

... 

//Creat a timer 
private void StartAlarmClockTimer() 
{ 
    manager = (AlarmManager)GetSystemService(Context.AlarmService); 
    alarmIntent = new Intent(Android.Provider.AlarmClock.ActionSetTimer); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraLength, 2); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraVibrate, true); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraMessage, "Custom Text!"); 
    alarmIntent.PutExtra(Android.Provider.AlarmClock.ExtraSkipUi, true); 
    alarmIntent.AddFlags(ActivityFlags.NewTask); 

    pendingIntent = PendingIntent.GetActivity(this, 0, alarmIntent, 0); 
    manager.SetExact(AlarmType.RtcWakeup, SystemClock.ElapsedRealtime(), pendingIntent); 
}; 

//Cancel a timer 
private void CancelAlarmClockTimer() 
{ 
    manager.Cancel(pendingIntent); 
} 
+0

感謝。私はアラームマネージャーを見ます – Jim

関連する問題