小米手机上的setAlarmClock()不显示闹钟图标指示

Posted

技术标签:

【中文标题】小米手机上的setAlarmClock()不显示闹钟图标指示【英文标题】:setAlarmClock() on Xiaomi phone does not display the alarm clock icon indicator 【发布时间】: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 来控制状态栏事件。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

好的,但是我安排的警报并没有被立即终止。它正确地调用了它的待处理意图 - 一个广播接收器,它调用使用提到的startForeground() 方法的服务来显示带有警报声的通知。 唯一的问题是在安排闹钟时(工作正常),通知栏上没有没有闹钟图标,表明闹钟已设置。

以上是关于小米手机上的setAlarmClock()不显示闹钟图标指示的主要内容,如果未能解决你的问题,请参考以下文章

求电脑高手进!如何用电脑查看小米手机2中的隐藏文件夹,比如data/system怎么用电脑查看,能教

为啥小米手机Toast不显示

小米9手机没有下载东西为啥总是显示正在下载扫描

小米手环上的mac可以修改吗?

转:深网 | 中国手机往事:因为雷军罗永浩们,中国才告别山寨机

转:深网 | 中国手机往事:因为雷军罗永浩们,中国才告别山寨机