Дирижабль Отправляет Приглушенное или Бесшумное Push-уведомление

#java #android #push-notification #urbanairship.com

Вопрос:

Поэтому я отправлял push-уведомления с помощью urban airship, используя IOSDevicePayload и AndroidDevicePayload. Они корректно работают для отправки стандартных уведомлений. Однако теперь у меня есть необходимость отправить тихое уведомление.

Для iOS я могу просто создать IOSDevicePayload без setSoundData, и в уведомлении не будет звука. Итак, вопрос в том, как мне добиться того же самого, используя AndroidDevicePayload?

Я пытался не отправлять setSound, установить значение setSound равным нулю и установить его на «отключение звука», но безрезультатно. Почему я подумал, что «отключение звука» сработает, потому что я нашел этот код :

 public class WNSSoundDeserializer extends JsonDeserializer<WNSAudioData.Sound> {
    ...
    public WNSAudioData.Sound deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
        String value = jp.getText();
        WNSAudioData.Sound sound = WNSAudioData.Sound.get(value);
        ...
 

и этот код :

 public class WNSAudioData {
    public enum Sound {
        MUTE,
        DEFAULT,
        IM,
        MAIL,
        REMINDER,
        SMS,
        LOOPING_ALARM,
        LOOPING_ALARM2,
        LOOPING_CALL,
        LOOPING_CALL2;

        ...

        public static Sound get(String value) {
            for (Sound sound : values()) {
                if (value.equalsIgnoreCase(sound.getIdentifier())) {
                    return sound;
                }
            }
            return null;
        }
    }

    private final Sound sound;
    ...
 

Я искал повсюду, и люди использовали NotificationCompat, и я где-то видел, что есть те, кто использует нулевое предупреждение. Я не хочу использовать эти решения, потому что нам нужно, чтобы уведомление имело заголовок и текст, и изменение условий использования NotificationКомпат кажется излишним, пока все остальное работает нормально.