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