报警管理器 - 在右侧任务栏中设置报警显示报警图标

时间:2018-02-04 01:46:10

标签: java android

我有一个简单的应用程序,我正在设置闹钟。警报工作正常。但是,当设置警报时,右侧任务栏中没有警报图标让用户知道警报处于活动状态。我不知道该怎么做。

代码段

 alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
 intent = new Intent(context, AlarmReceiver.class);
 pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
 alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);

如何在右侧任务栏中显示警报图标,向用户显示警报处于活动状态。我需要显示/隐藏此图标,具体取决于是否打开/关闭闹钟。

谢谢

修改

我试过这个但它仍然无法正常工作。

 AlarmManager.AlarmClockInfo ac= new 
 AlarmManager.AlarmClockInfo(System.currentTimeMillis(),
                            pendingIntent);

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      alarmManager.setAlarmClock(ac , pendingIntent);
  } else {
 Intent alarmChanged = new
 Intent("android.intent.action.ALARM_CHANGED");
 context.sendBroadcast(alarmChanged);
 }

1 个答案:

答案 0 :(得分:1)

您可以将AlarmManager.setAlarmClock (AlarmManager.AlarmClockInfo info, PendingIntent operation)用于Lolipop及之后。

预备Lolipop的

sendBroadcast(Intent intent);

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        AlarmManager.setAlarmClock(info, mPendingIntent)
    } else {
        setStatusBarIcon(true);
    }

    protected void setStatusBarIcon ( boolean enabled)
    {
        Intent alarmChanged = new
        Intent("android.intent.action.ALARM_CHANGED");
        alarmChanged.putExtra("alarmSet", enabled);
        sendBroadcast(alarmChanged);
    }

另见this