3

Javaを使用してAPNSサーバーと通信する場合のように、Enhanced Notification Format(Apple Push Notification Serviceに送信するため)のExpiryフィールドの4バイトが何を意味するのかを誰かが明確にできますか?たとえば、Dateオブジェクトを準備する場合、APNSに送信するために必要な4バイトにするにはどうすればよいですか?

4

1 に答える 1

1

APNSドキュメントには次のように記載されています。

Expiry:通知が無効になり、破棄できる時期を識別する、秒単位で表される固定UNIXエポック日付(UTC)。有効期限の値はネットワーク順(ビッグエンディアン)である必要があります。有効期限の値が正の場合、APNは少なくとも1回は通知の配信を試みます。ゼロまたはゼロ未満の値を指定して、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 に答える