/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.provider; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; /** * The AlarmClock provider contains an Intent action and extras that can be used * to start an Activity to set a new alarm or timer in an alarm clock application. * * Applications that wish to receive the ACTION_SET_ALARM and ACTION_SET_TIMER Intents * should create an activity to handle the Intent that requires the permission * com.android.alarm.permission.SET_ALARM. Applications that wish to create a * new alarm or timer should use * {@link android.content.Context#startActivity Context.startActivity()} so that * the user has the option of choosing which alarm clock application to use. */ public final class AlarmClock { /** * Activity Action: Set an alarm. *

* Activates an existing alarm or creates a new one. *

* This action requests an alarm to be set for a given time of day. If an alarm already * exists for this time, an implementation may use it rather than create a new one. If no time * of day is specified, the implementation should start an activity that is capable of setting * an alarm (SKIP_UI is ignored in this case). This action always enables the alarm. *

*

Request parameters

* */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_SET_ALARM = "android.intent.action.SET_ALARM"; /** * Activity Action: Set a timer. *

* Activates an existing timer or creates a new one. *

* This action requests a timer to be started for a specific {@link #EXTRA_LENGTH length} of * time. If a timer already exists for this {@link #EXTRA_LENGTH length}, an implementation may * use it rather than create a new one. If no {@link #EXTRA_LENGTH length} is specified, the * implementation should start an activity that is capable of setting a timer * ({@link #EXTRA_SKIP_UI} is ignored in this case). *

* An existing timer should only be used if it matches the provided extras and is not currently * in use. *

* *

Request parameters

* */ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) public static final String ACTION_SET_TIMER = "android.intent.action.SET_TIMER"; /** * Bundle extra: Weekdays for repeating alarm. *

* Used by {@link #ACTION_SET_ALARM}. *

* The value is an {@code ArrayList}. Each item can be: *

* *

* Note: If this extra is provided, {@link #EXTRA_DELETE_AFTER_USE} is ignored. *

*/ public static final String EXTRA_DAYS = "android.intent.extra.alarm.DAYS"; /** * Bundle extra: Whether or not to delete this alarm/timer after it's dismissed. *

* Used by {@link #ACTION_SET_ALARM} and {@link #ACTION_SET_TIMER}. *

* If this value is true, the alarm/timer used by this action should be deleted after it's been * dismissed. The alarm/timer should only be removed if was actually created by the action. If * an existing alarm/timer was used, it should not be deleted after it's dismissed. *

* The value is a {@link Boolean}. *

* * @see #ACTION_SET_ALARM * @see #ACTION_SET_TIMER */ public static final String EXTRA_DELETE_AFTER_USE = "android.intent.extra.alarm.DELETE_AFTER_USE"; /** * Bundle extra: The hour of the alarm. *

* Used by {@link #ACTION_SET_ALARM}. *

* This extra is optional. If not provided, an implementation should open an activity * that allows a user to set an alarm with user provided time. *

* The value is an {@link Integer} and ranges from 0 to 23. *

* * @see #ACTION_SET_ALARM * @see #EXTRA_MINUTES * @see #EXTRA_DAYS */ public static final String EXTRA_HOUR = "android.intent.extra.alarm.HOUR"; /** * Bundle extra: The length of the timer in seconds. *

* Used by {@link #ACTION_SET_TIMER}. *

* This extra is optional. If not provided, an implementation should open an activity * that allows a user to set a timer with user provided length. *

* The value is an {@link Integer} and ranges from 1 to 86400 (24 hours). *

* * @see #ACTION_SET_TIMER */ public static final String EXTRA_LENGTH = "android.intent.extra.alarm.LENGTH"; /** * Bundle extra: A custom message for the alarm or timer. *

* Used by {@link #ACTION_SET_ALARM} and {@link #ACTION_SET_TIMER}. *

* The value is a {@link String}. *

* * @see #ACTION_SET_ALARM * @see #ACTION_SET_TIMER */ public static final String EXTRA_MESSAGE = "android.intent.extra.alarm.MESSAGE"; /** * Bundle extra: The minutes of the alarm. *

* Used by {@link #ACTION_SET_ALARM}. *

* The value is an {@link Integer} and ranges from 0 to 59. If not provided, it defaults to 0. *

* * @see #ACTION_SET_ALARM * @see #EXTRA_HOUR * @see #EXTRA_DAYS */ public static final String EXTRA_MINUTES = "android.intent.extra.alarm.MINUTES"; /** * Bundle extra: A ringtone to be played with this alarm. *

* Used by {@link #ACTION_SET_ALARM}. *

* This value is a {@link String} and can either be set to {@link #VALUE_RINGTONE_SILENT} or * to a content URI of the media to be played. If not specified or the URI doesn't exist, * {@code "content://settings/system/alarm_alert} will be used. *

* * @see #ACTION_SET_ALARM * @see #VALUE_RINGTONE_SILENT * @see #EXTRA_VIBRATE */ public static final String EXTRA_RINGTONE = "android.intent.extra.alarm.RINGTONE"; /** * Bundle extra: Whether or not to display an activity after performing the action. *

* Used by {@link #ACTION_SET_ALARM} and {@link #ACTION_SET_TIMER}. *

* If true, the application is asked to bypass any intermediate UI. If false, the application * may display intermediate UI like a confirmation dialog or settings. *

* The value is a {@link Boolean}. The default is {@code false}. *

* * @see #ACTION_SET_ALARM * @see #ACTION_SET_TIMER */ public static final String EXTRA_SKIP_UI = "android.intent.extra.alarm.SKIP_UI"; /** * Bundle extra: Whether or not to activate the device vibrator. *

* Used by {@link #ACTION_SET_ALARM}. *

* The value is a {@link Boolean}. The default is {@code true}. *

* * @see #ACTION_SET_ALARM * @see #EXTRA_RINGTONE * @see #VALUE_RINGTONE_SILENT */ public static final String EXTRA_VIBRATE = "android.intent.extra.alarm.VIBRATE"; /** * Bundle extra value: Indicates no ringtone should be played. *

* Used by {@link #ACTION_SET_ALARM}, passed in through {@link #EXTRA_RINGTONE}. *

* * @see #ACTION_SET_ALARM * @see #EXTRA_RINGTONE * @see #EXTRA_VIBRATE */ public static final String VALUE_RINGTONE_SILENT = "silent"; }