私は、Android カレンダーを呼び出してアラームを設定したいプロジェクトを行っています。ユーザーは、アプリケーション自体に日付と時刻を入力します。カレンダー アプリケーションを開くときに、この日付と時刻をカレンダー アプリケーションに渡す方法はありますか?
1 に答える
特定のカレンダーにエントリを追加するには、次のように ContentValues を使用して挿入するカレンダー エントリを構成する必要があります。
ContentValues event = new ContentValues();
各イベントは特定のカレンダーに関連付ける必要があるため、最初に設定する必要があるのは、このイベントを挿入するカレンダーの識別子です。
event.put("calendar_id", calId);
次に、イベントのタイトル、説明、場所などの文字列フィールドを含む、イベントに関するいくつかの基本情報を設定します。
event.put("title", "Event Title");
event.put("description", "Event Desc");
event.put("eventLocation", "Event Location");
イベントの時刻と日付を構成するためのさまざまなオプションが多数あります。
イベントの開始情報と終了情報を次のように設定できます。
long startTime = START_TIME_MS;
long endTime = END_TIME_MS;
event.put("dtstart", startTime);
event.put("dtend", endTime);
誕生日や休日を追加する場合は、エントリを終日のイベントに設定します。
event.put("allDay", 1); // 0 for false, 1 for true
ほとんどのエントリには、この情報で十分です。ただし、他にも便利なカレンダー エントリ属性が多数あります。
たとえば、イベントのステータスを仮 (0)、確認済み (1)、またはキャンセル済み (2) に設定できます。
event.put("eventStatus", 1);
可視性をデフォルト (0)、機密 (1)、非公開 (2)、または公開 (3) に設定することで、このイベントを表示できるユーザーを制御できます。
event.put("visibility", 0);
イベントの透明度を不透明 (0) または透明 (1) に設定することで、イベントがカレンダーで時間を消費する (スケジュールが競合する可能性がある) かどうかを制御できます。
event.put("transparency", 0);
イベントがリマインダー アラームをトリガーするかどうかは、次のように制御できます。
event.put("hasAlarm", 1); // 0 for false, 1 for true
カレンダー イベントが正しく構成されたら、ContentResolver を使用して新しいカレンダー エントリをカレンダー イベントの適切な Uri に挿入する準備が整いました。
Uri eventsUri = Uri.parse("content://calendar/events");
Uri url = getContentResolver().insert(eventsUri, event);