【问题标题】:setAlarmClock() on Xiaomi phone does not display the alarm clock icon indicator小米手机上的setAlarmClock()不显示闹钟图标指示
【发布时间】:2021-07-09 19:29:51
【问题描述】:

在我的安卓应用程序中,我使用setAlarmClock() 函数来安排闹钟。正如android documentation 所述,此警报:

代表闹钟,

这意味着应该在通知栏上显示闹钟小图标,表示有闹钟待处理。

我的安卓手机有一个MIUI overlay - 这是一部小米手机(SDK 29)。现在,当我安排闹钟时:

alarmManager.setAlarmClock(
    new AlarmManager.AlarmClockInfo(calendar.getTimeInMillis(), alarmPendingIntent),
    alarmPendingIntent);

它工作正常;它会在指定的时间关闭,按预期唤醒设备等。但是缺少上述图标指示器 - 设置警报后,通知栏应该(至少在理论上)如下所示:

但是,显然,它看起来像这样:

作为比较,在另一台安卓设备(SDK 24)上,这次使用EMUI overlay(华为),setAlarmClock()功能使警报图标出现在通知栏上。

现在我不知道问题是特定于 MIUI 还是某些设置有误。是否有可能解决我的问题?

更新:据我所知,这个问题也与在MIUI 下运行的安卓设备有关,而不是我的。似乎小米正在使用自己的似乎更私有的 API 来控制状态栏事件。

【问题讨论】:

    标签: android alarmmanager xiaomi miui setalarmclock


    【解决方案1】:

    从 Android 2.0 开始,系统要求应用程序在后台持续运行,并且需要一定级别的优先级,这样它们就不会被意外杀死(如音乐应用程序),放置一个 Ongoing Notification。这是为了防止在不让用户知道它正在发生的情况下滥用请求此级别的优先级。

    你可以在这里阅读:http://developer.android.com/reference/android/app/Service.html#startForeground%28int,%20android.app.Notification%29

    【讨论】:

    • 好的,但是我安排的警报并没有被立即终止。它正确地调用了它的待处理意图 - 一个广播接收器,它调用使用提到的startForeground() 方法的服务来显示带有警报声的通知。 唯一的问题是在安排闹钟时(工作正常),通知栏上没有没有闹钟图标,表明闹钟已设置。
    猜你喜欢
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多