Афоризм
Честь девичью блюла, но не со всеми.
Наталья Резник
Последние статьи

 • javax.crypto.Cypher
Cимметричное шифрование и дешифрирование
октябрь 2019
 • Random, Math.random
Генерация случайных чисел
октябрь 2019
 • Компонент JDatePicker
Описание и пример компонента JDatePicker
сентябрь 2019
 • Компонент Tree
Описание и пример дерева Tree библиотеки base-gui
сентябрь 2019
 • Grid с навигатором
Описание и пример Gridp с навигатором
сентябрь 2019
 • Компонент Grid
Описание и пример Grid библиотеки base-gui
август 2019
 • Библиотека base-gui
Описание компонентов библиотеки base-gui
август 2019
 • Оператор SELECT
Использование SQL-оператора SELECT
август 2019
 • Сокеты в Android
Использование сокетов в 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