3

谁能澄清增强通知格式(用于发送到 Apple 推送通知服务)的 Expiry 字段中的 4 个字节是什么意思,就像使用 Java 与 APNS 服务器通信一样?说,如果我准备 Date 对象,我如何将它变成发送到 APNS 所需的 4 个字节?

4

1 回答 1

1

APNS 文档指出:

Expiry — 以秒 (UTC) 表示的固定 UNIX 纪元日期,用于标识通知何时不再有效并且可以丢弃。到期值应按网络顺序(大端)。如果到期值为正,APNs 会尝试至少发送一次通知。您可以指定零或小于零的值来请求 APN 根本不存储通知。

如果您有一个 Date 对象(让我们称之为date),其中包含您的消息应该过期的日期/时间,发送到 APNS 的 4 个字节的过期值是expiry

Calendar cal = Calendar.getInstance ();
cal.setTime (date);
int expiry   = cal.getTimeInMillis () / 1000L;

或者你可以有一个相对的到期间隔。例如,如果您希望您的消息在发送到 APNS 服务器后 2 小时(7200 秒)过期,则值为expiry

int expiry = (System.currentTimeMillis () / 1000L) + 7200;
于 2012-12-07T20:30:57.983 回答