Афоризм
Не надо инсценировать раздумья.
Наталья Резник
Последние статьи

 • Многомодульный maven
Пример создания многомодульного maven проекта
июнь 2019
 • Maven плагин launch4j
Создание exe-файла из исполняемого jar
июнь 2019
 • Основы Contacts API
Описание структуры хранения списка контактов
май 2019
 • Синхронизаторы потока
Примеры синхронизаторов пакета java.util.concurrent.
май 2019
 • Сервисы в Android
Неявное Intent отправки Email.
апрель 2019
 • Сервисы в Android
Описание и пример создания Android сервиса.
апрель 2019
 • Вызов AlarmClock
Неявное Intent для вызова AlarmClock.
март 2019
 • Намерения Intent
Описание Intent, фильтры объектов Intent.
март 2019
 • Пример 2-х Activity
Жизненные циклы 2-х Activity android положения.
март 2019

Intent взаимодействия с AlarmClock

Провайдер AlarmClock включил возможность вызова активности для установки параметров будильника и таймера с использованием неявного намерения Intent. Приложения, которым необходимо открывать активность будильника, должны использовать метод Context.startActivity(). Начиная с 9-ой версии android параметры описания неявного намерения взаимодействия с AlarmClock включены в API.

Рассмотрим пример использования неявного намерения вызова будильника. В интерфейсе окна разместим две кнопки для создания двух разных Intent. В одном намерении определим параметры времени (час, мин, сек). Второе Intent будет без параметров времени.

Доступ к действию, манифест AndroidManifest.xml

В некоторых случаях использования неявных намерений следует в манифесте приложения указать разрешения uses-permission на доступ к определенным действиям. Так, для вызова связанного с будильником действия необходимо определить разрешение com.android.alarm.permission.SET_ALARM.

<?xml version="1.0" encoding="utf-8"?>
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.test.p09intent">
    <uses-permission 
       android:name="com.android.alarm.permission.SET_ALARM"/>

    <application
	    . . .
    </application>
</manifest>

Полная документация определения различных типов разрешений (uses-permission) в файле манифеста представлена здесь.

Код активности

Класс активности реализует интерфейс View.OnClickListener, согласно которому переопределяется метод слушателя события onClick. Две кнопки интерфейса (R.id.btn1, R.id.btn2) подключаются к слушателю. В методе onClick определяется компонент и вызывается соответствующий ему один из методов (openAlarmClock, setAlarmClock). Полагаю, что интерфейс примера, включающий 2 кнопки, нет смысла описывать.

public class MainActivity extends AppCompatActivity 
                          implements View.OnClickListener
{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn = (Button) findViewById(R.id.btn1);
        btn.setOnClickListener(this);

        btn = (Button) findViewById(R.id.btn2);
        btn.setOnClickListener(this);
    }
    @Override
    public void onClick(View v)
    {
        if (v.getId() == R.id.btn1) {
            openAlarmClock();
        } else if (v.getId() == R.id.bt2) {
            setAlarmClock("Test AlarmClock", 16, 50);
        }
    }
    public void setAlarmClock(String message, 
                               int hour, int minutes)
    {
        Intent intent
        intent = new Intent(AlarmClock.ACTION_SET_ALARM  );
        intent.putExtra(AlarmClock.EXTRA_MESSAGE, message);
        intent.putExtra(AlarmClock.EXTRA_HOUR   , hour   );
        intent.putExtra(AlarmClock.EXTRA_MINUTES, minutes);

        callImplicitIntent(intent);
    }
    public void openAlarmClock()
    {
        Intent intent;
        intent = new Intent(AlarmClock.ACTION_SET_ALARM);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        callImplicitIntent(intent);
    }
    private void callImplicitIntent(Intent intent)
    {
        if (intent.resolveActivity(getPackageManager())!=null)
            startActivity(intent);
    }
}

На следующем скриншоте представлен интерфейс активности будильника, открытый по нажатию одной из кнопок.

Думая, что Вам не составит труда самостоятельно создать намерение ACTION_SHOW_ALARMS для открытия списка всех установленных временных значений будильника AlarmClock.

Полная англо-язычная документация определения различных параметров будильника AlarmClock представлена здесь.

Связанные страницы

Объект намерения Intent

  Рейтинг@Mail.ru