如何通过gmail状态发布倒计时?

sof*_*ofo 5 gmail status

请问我的gmail状态是否可以发布倒计时?像"01:44:15:23"一样,它的不断减少.

Zah*_*med 4

发现一篇好文章分享

\n\n

Google Talk 使用 XMPP,那么如果您可以使用客户端连接,则XMPP client可以Google account使用客户端而不是 Google talk。

\n\n

整个机制太简单了(使用 SmackXMPP Library因为它很简单并且对我很有用):

\n\n
    \n
  1. 登录。
  2. \n
  3. 计算现在与目标日期之间的差异。
  4. \n
  5. 发送出席信息
  6. \n
\n\n

登录

\n\n
import org.jivesoftware.smack.XMPPConnection;\n\npublic void connect() {\n    XMPPConnection connection = new XMPPConnection(server); //Server is gmail.com for Google Talk.\n    connection.connect();\n    connection.login(username, password); //Username and password.\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

计算现在与目标日期之间的差异

\n\n

此过程是使用 Java Calendar 和 Date 对象完成的:

\n\n
import java.util.Calendar;\nimport java.util.Date;\n\n{\n        Calendar calendar1 = Calendar.getInstance();\n        Date d = new Date();\n        calendar1.setTime(d);\n\n        Calendar calendar2 = Calendar.getInstance();\n        calendar2.setTime(endLine); //End line is the date we\'re counting to.\n\n        long milliseconds1 = calendar1.getTimeInMillis();\n        long milliseconds2 = calendar2.getTimeInMillis();\n        long diff = milliseconds2 - milliseconds1;\n\n        long diffDays = diff / (24 * 60 * 60 * 1000);\n        diff = diff % (24 * 60 * 60 * 1000);\n\n        long diffHours = diff / (60 * 60 * 1000);\n        diff = diff % (60 * 60 * 1000);\n\n        long diffMinutes = diff / (60 * 1000);\n        diff = diff % (60 * 1000);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此代码计算两个日期之间的天数、小时数和分钟数之差。

\n\n

发送出席信息

\n\n

计算出差异后,我们要做的就是发送存在:

\n\n
import org.jivesoftware.smack.packet.Presence;\n\n{\n         String remaining = Long.toString(diffDays) + " day(s), " + Long.toString(diffHours) + " hour(s), " + Long.toString(diffMinutes) + " minute(s) " + message; //Message is usually: Until "something".\n\n        Presence presence = new Presence(Presence.Type.available);\n        presence.setStatus(remaining);\n        presence.setPriority(24); //Highest priority in Google Talk\n        presence.setMode(presenceMode); //This is one of XMPP modes (Available, Chat, DND, Away, XA).\n        connection.sendPacket(presence);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此后,人们将看到您的新状态,而不是 Google Talk 中的状态。(请注意,\xe2\x80\x99 无法在 Google Talk 中看到更改,但请放心,它已更改。如果您想确保它已更改,请请您的一位朋友告诉您您的状态)。

\n