首页 > 解决方案 > 以编程方式打开请勿打扰,但有例外

问题描述

我有一个 android 应用程序,我需要以编程方式打开“请勿打扰”按钮,但有例外,我可以播放媒体。我确实成功地使用以下代码打开了请勿打扰:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (notificationManager.isNotificationPolicyAccessGranted) {
        Log.d(Globals.LOG_TAG, "has permissions")
    } else {
        Log.d(Globals.LOG_TAG, "does not have permissions")
        val intent = Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS)
        startActivity(intent)
    }
} else {
    Log.d(Globals.LOG_TAG, "device does not support do not disturb feature")
}
notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE)

并添加了权限:

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>

但由于请勿打扰,无法在应用程序上播放媒体。但是我看到我可以设置例外(对于呼叫、警报、媒体......),并且我想以编程方式向媒体添加例外。

我怎样才能做到这一点?谢谢你。

标签: javaandroidkotlindo-not-disturb

解决方案


需要做

notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY)

代替

notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE)

推荐阅读