ユーザーがさまざまな時間にアラームを設定できるアプリがあります。現在、AlarmManager と BroadcastReceiver および AlertDialog を使用して、アラームが鳴ったことをユーザーに警告します。
私のアプリが組み込みの目覚まし時計を利用できるかどうかを確認したいと思います。次のようにアラームをスケジュールできることを知っています。
Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_HOUR, new Date(alarm.getTime()).getHours());
i.putExtra(AlarmClock.EXTRA_MINUTES, new Date(alarm.getTime()).getMinutes());
i.putExtra(AlarmClock.EXTRA_MINUTES, alarm.getDescription());
i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
context.startActivity(i);
しかし、これには 2 つの問題があります。
- 24 時間以上先のアラームをスケジュールする方法はないようです
- Android 内蔵のアラームでは、10 個のアラームしか設定できません
項目 1 の回避策として、AlarmManager を使用して、ユーザー アラームが期限の 24 時間以内に設定されるようにスケジュールすることができます。ただし、これにより項目 2 が残ります。理想的には、アプリのアラームが実行された後、Android の目覚まし時計からアプリのアラームを削除する方法が必要ですが (アプリのアラームがアラーム スペースを占有しないようにするため)、離れた場所を見つけることができません。アラームのリストと 1 つを削除します。
これは可能ですか、または手動の AlarmManager/AlertDialog アプローチに固執する必要がありますか?