#java #android #alarm #android-alarms
Вопрос:
Вот код, который должен отключать сигнал тревоги по его метке:
Intent intent = new Intent(AlarmClock.ACTION_DISMISS_ALARM);
intent.putExtra(AlarmClock.EXTRA_ALARM_SEARCH_MODE, AlarmClock.ALARM_SEARCH_MODE_LABEL);
//intent.putExtra(AlarmClock.ALARM_SEARCH_MODE_TIME,1);
//intent.putExtra(AlarmClock.EXTRA_IS_PM, true);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(AlarmClock.EXTRA_MESSAGE, "Label");
if(intent.resolveActivity(getPackageManager()) != null){
startActivity(intent);
} else {
Toast.makeText(SetAlarmActivity.this, "There is no app that support this action", Toast.LENGTH_SHORT).show();
}
К сожалению, он просто открывает приложение будильника по умолчанию и даже не отключает нужный мне будильник. Как заставить его работать правильно?
Ответ №1:
Этот код делает то, что он должен делать. Он открывает указанное вами намерение — приложение «будильник».
Я предполагаю, что вы установили будильник через AlarmManager и хотите его отменить? Если это так, то код является:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent myIntent = new Intent(getApplicationContext(), YourBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
getApplicationContext(), REQUEST_CODE, myIntent, 0);
alarmManager.cancel(pendingIntent);
Убедитесь, что код запроса такой же, как и при запуске.
Если вы действительно установили будильник через приложение «Будильник» и хотели его отменить — я не уверен, что есть способ без участия пользователя.
Комментарии:
1. К сожалению, я установил будильник с помощью будильника. SET_ALARM
2. Затем вам нужно, чтобы пользователь выразил намерение, и будильник решил, что хочет попросить пользователя подтвердить удаление. С этим ничего не поделаешь.