Приложение DeskClock (которое заменило старое приложение AlarmClock) устанавливает тревоги с помощью диспетчера тревог.К сожалению, невозможно прочитать существующие аварийные сигналы из диспетчера аварийных сигналов, если только вы не знаете PendingIntent, который их создал.DeskClock хранит эти PendingIntents, а также другую информацию о тревогах, во внутренней базе данных.Однако существует другой способ узнать время последнего установленного или удаленного сигнала тревоги:
DeskClock отправляет намерение широковещания под названием android.intent.action.ALARM_CHANGED
, когда обновляет значок строки состояния (с дополнительным логическим значением alarmSet
дляукажите вкл / выкл) и обновления Systems.Settings.NEXT_ALARM_FORMATTED
, которые вы можете получить с помощью следующего широковещательного приемника:
private static final String tag = "TestReceiver";
@Override
public void onReceive(Context context, Intent intent)
{
Log.d(tag, "intent=" + intent);
Boolean message = intent.getBooleanExtra("alarmSet",false);
Log.d(tag, "alarmSet: " + message);
Log.d(tag, "next alarm: " + Settings.System.getString(context.getContentResolver(),android.provider.Settings.System.NEXT_ALARM_FORMATTED));
}
и со следующим фильтром намерений в вашем AndroidManifest.xml:
<receiver android:name=".TestReceiver">
<intent-filter>
<action android:name="android.intent.action.ALARM_CHANGED"></action>
</intent-filter>
</receiver>