Афоризм
Как жаль, я Вам теперь не по карману.
Наталья Резник
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

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