1

在 Android 上,创建频道时,有两个属性:setBypassDnd 和 setLockscreenVisibility,它们只能由系统修改(https://developer.android.com/reference/android/app/NotificationChannel)。我已经测试过使用这些值创建一个频道:

    if (Build.VERSION.SDK_INT >= 26) {

        //we give it a name, description and importance
        CharSequence name = context.getString(R.string.channel_name);
        String channelID = getNotificationChannelID(getSharedPreferences(context));
        NotificationChannel channel = new NotificationChannel(channelID, name, importance);

        channel.setBypassDnd(true);
        channel.setLockscreenVisibility(VISIBILITY_SECRET);

        // Register the channel with the system
        NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
        notificationManager.createNotificationChannel(channel);
    }

但是频道中的值是按默认设置的(bypassDnd=false 和 LockscreenVisibility=VISIBILITY_PUBLIC),我理解这是由“只能由系统修改”限制引起的。

我正在重新创建频道,因为这似乎是创建频道后更改振动/声音/LED 的唯一方法,但我想保留用户可能设置的所有属性。

我想在这一点上这是一个我无法克服的限制,但我很好奇是否有人找到了解决这个问题的方法,或者这就是它的样子。

4

0 回答 0