我正在 android 4.0.3 即 ICS 版本中创建一个应用程序,当客户端登录到应用程序时连接到服务器。我试图通过服务器在线或离线获取客户端的状态并在应用程序屏幕上看到.我无法继续。谁能说我:
是否可以通过服务器获取用户的状态?
1-- 如何进行第一步...?
2-- 我应该如何从服务器获得客户端已连接并查看到其他客户端示例的响应-当我们登录到 Skype 时,我们的状态显示为可用绿色单选按钮,以同样的方式我怎样才能得到它。?
如果有人指导我,这将非常有帮助。非常感谢..
我假设您正在尝试开发聊天应用程序?
如果是这种情况,请尝试使用 XMPP 库。XMPP 广泛用于聊天应用程序,包括 Facebook 聊天(我认为还有 Google talk),并且有大量可用的开源库。
否则,如果您只想将实时通知作为全局的一部分,请尝试使用推送通知。Google 支持适用于 Android 的云到设备消息传递 (C2DM)。它允许向特定设备推送通知,而无需处理持久连接、电池和 CPU 使用等。
C2DM 方法归结为这一点。当客户端连接到您的服务器时,获取他的朋友列表和他们的“C2DM ID”并将 C2DM 推送到他们的设备。此推送被传递到您的应用程序,您可以通过触发通知或更新 UI 等方式对其进行响应。(您的应用程序不一定要运行。推送通知通过特定的广播传递,您的应用程序可以注册接收器以唤醒它。)
请记住,每个设备、每个应用程序的 C2DM 消息都有配额,并且每条消息的有效负载也有限制。所以你不应该通过这个发送大量文件。只是对您的应用程序的通知,因此它可以调用您的服务器并获取更新的列表,而不是轮询。
您可以在此处获取有关 C2DM 和代码示例的更多信息。https://developers.google.com/android/c2dm/
希望这可以帮助。
您可能已经继续前进,但我正在为将来遇到此问题的任何人发帖。
如果应用程序始终在您希望发生通信时运行,那么在这种情况下使用Firebase是一个很好的解决方案。(它不会像 C2DM/CDM 那样唤醒你的应用程序,除非你有一个服务一直在运行并且如果设备处于睡眠状态仍然不会唤醒...... AFAIK)
它可能对某些场景有用,但可能不适用于聊天应用程序,因为您希望设备在消息到达时唤醒。
请注意,尽管他们对免费订阅有限制。