#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Компат кажется излишним, пока все остальное работает нормально.