自Android Lollipop 5.0(API21)发布以来,现在有一个API可以正式显示/隐藏警报图标.stackoverflow上有关于此的更多信息.
多亏了它,我设法在5.0+ Android设备上显示警报图标.不幸的是,如果警报被禁用,我无法解除/隐藏/取消图标.
这就是我正在做的事情(Stackoverflow和Android股票报警的几次尝试混合):
public static void setNextAlert(final Context context) {
final Alarm alarm = calculateNextAlert(context);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(ALARM_ALERT_ACTION);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
int flags = alarm == null ? PendingIntent.FLAG_NO_CREATE : 0;
PendingIntent operation = PendingIntent.getBroadcast(context, 0 /* requestCode */, intent, flags);
if (alarm != null)
{
if(UtilsAlarm.isLollipopOrLater())
{
PendingIntent viewIntent = PendingIntent.getActivity(context, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager.AlarmClockInfo info = new AlarmManager.AlarmClockInfo(alarm.time, viewIntent);
am.setAlarmClock(info, operation);
} …Run Code Online (Sandbox Code Playgroud)