— А толку! Фасад обновишь, а канализация все равно старая!
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 представлена здесь. Связанные страницы |
