2

我正在使用以下代码设置中断过滤器:

NotificationManager myNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
myNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);

它在每台设备上都运行良好,但由于某种原因,它不适用于使用 Android 9的小米设备。在这些设备中未激活“请勿打扰”模式。它保持不变。如果我问设备当前的中断是什么,它会以 5 的值回答。这是 Android 开发人员中的一个未知且未记录的值,如此所述。

int iCurrentInterruption = oNotificationManager.getCurrentInterruptionFilter();

iCurrentInterruption 的值为 5。以下都不是:

INTERRUPTION_FILTER_UNKNOWN = 0
INTERRUPTION_FILTER_ALL = 1
INTERRUPTION_FILTER_PRIORITY = 2
INTERRUPTION_FILTER_NONE = 3 
INTERRUPTION_FILTER_ALARMS = 4
4

1 回答 1

1

我猜在小米设备中系统需要更长的时间来激活中断过滤器,所以你不能马上要求结果。所以,我睡了一秒钟,然后问。有时它也不会在第一次被激活,所以我必须第二次调用 setInterruptionFilter。

像这样的东西:

setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
wait
If INTERRUPTION_FILTER_PRIORITY==getCurrentInterruptionFilter() then return OK
//Second try:
setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
wait
If INTERRUPTION_FILTER_PRIORITY==getCurrentInterruptionFilter() then return Ok
return error
于 2019-09-15T18:40:15.790 回答