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 представлена здесь. Связанные страницы |