package com.hyl.openfire; import java.util.Collection; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.RosterEntry; import org.jivesoftware.smack.RosterGroup; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { private int PORT=5222; private static Boolean isLogin=false; XMPPConnection connection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initConnection(); login("hyl1234","hyl1234"); getFriends(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } private void initConnection(){ ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.104", PORT); config.setSASLAuthenticationEnabled(false); connection = new XMPPConnection(config); try { connection.connect(); } catch (XMPPException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void login(String name,String pass){ try { connection.login(name, pass); System.out.println("登录成功"); isLogin=true; } catch (XMPPException e) { System.out.println("登录失败"); e.printStackTrace(); } } public void getFriends(){ Roster roster = connection.getRoster(); Collection<RosterGroup> entriesGroup = roster.getGroups(); System.out.println("size--->"+entriesGroup.size()); for(RosterGroup group: entriesGroup){ Collection<RosterEntry> entries = group.getEntries(); System.out.println("group-->"+group.getName()); for (RosterEntry entry : entries) { System.out.println("name-->"+entry.getName()); } } } }
相关推荐
通过这个“Android+smack4.1.4+openfire demo”,开发者可以学习如何在Android应用中实现实时通信功能,包括连接Openfire服务器、登录、获取好友列表以及发送和接收消息。这个示例代码可以作为Android即时通讯应用...
功能:注册账号、登录和退出系统、获取好友列表、添加和删除好友、收发文本消息、分享位置(基于百度地图SDK) 说明:本源码来自董相志老师所著的《Java 网络编程案例》,书中第15章由我所写,并配有微课视频,特将...
3. `RosterManager.java`:处理用户的好友列表,添加、删除好友,获取好友在线状态。 4. `GroupManager.java`:创建和管理群组,添加或移除群组成员。 注意点: - Android权限:确保在AndroidManifest.xml中添加...
6. **好友管理**:处理添加、删除好友的请求,以及获取好友列表。 7. **安全性与优化**:考虑使用SSL/TLS加密通信,提高数据安全性。同时,合理设计消息缓存和心跳机制,优化网络资源使用。 在开发过程中,我们还...
4. **好友列表管理**:通过服务发现(XEP-0030)获取服务器上的所有可用资源,并请求好友列表。一旦收到响应,将好友列表显示在UI上。还可以实现添加、删除好友的接口。 5. **聊天功能**:创建聊天会话类,使用...
3. **好友获取**:使用Roster类可以管理用户的联系人列表,包括获取、添加、删除好友。RosterListener可以监听联系人列表的变化,例如好友上线、下线或者更改状态等。 **高级功能和挑战** 即时通讯系统不仅要实现...
【Android代码-基于openfire和smack的安卓xmpp客户端】是一个项目,它实现了使用XMPP协议在Android设备上创建一个客户端应用。XMPP(Extensible Messaging and Presence Protocol)是一种实时通信协议,常用于实现...
在数据库管理方面,使用了SQLitev2.8,这是Android系统内置的轻量级数据库,用于存储用户数据,如好友列表、聊天记录等。SQLite支持SQL标准,具有事务处理能力,能够确保数据的一致性和完整性。聊天记录通常会被持久...
开发者需要考虑聊天窗口的设计、消息推送通知、好友列表展示、设置选项等UI元素,确保用户能够方便快捷地使用应用。 9. **性能优化**:为了保证流畅的用户体验,开发者需要关注应用的性能,比如减少网络延迟、优化...
2. **获取好友列表**:客户端向服务器发送请求,获取用户的联系人列表,这通常包含了好友的JID和其他元数据,如昵称。服务器会响应包含这些信息的XML流,客户端解析后显示在界面上。 3. **发送文字消息**:通过XMPP...
Android IM 是一个基于Android平台的即时通讯(Instant Messaging)应用,它利用了Openfire作为后端服务器,并且依赖XMPP(Extensible Messaging and Presence Protocol)协议来实现用户间的实时通信。Openfire是一...
15. 好友列表缓存 16. Vcard缓存 17. 好友在线状态获取 18. Notification通知 19. 新增好友分组管理支持(增删改) 20. 新增群组聊天支持 测试账号:10010-10030 密码都为:1 2 3 4 5 6 也可自行注册 服务端是...
- **联系人管理**:获取好友列表,添加、删除或修改联系人。 - **群组聊天**:创建GroupChat对象,邀请用户到群聊,发送和接收群聊消息。 - **状态更新**:设置和获取用户的在线状态。 5. **集成Smack到项目**:...
2. 好友管理:添加、删除好友,查看好友列表,获取好友在线状态。 3. 私聊:实现一对一的聊天功能,包括文本、图片、语音等多种消息类型。 4. 群聊:创建、加入群组,发起群组聊天,管理群成员。 5. 消息历史记录:...
TabFragment2通讯录界面,加载用户的好友列表; TabFragment3发现界面,功能尚未添加; TabFragment4个人设置页面,加载个人资料; AddFriendActivity添加好友页面,搜索仅仅是获取用户头像,申请添加好友,及...
4. **联系人列表**:管理好友列表,添加、删除、分组联系人。 5. **多设备同步**:支持多个设备间的消息同步和会话恢复。 通过这个压缩包,开发者可以直接获取到Openfire服务器安装程序和Smack开发所需的jar包,...
8. 实现好友列表管理,包括添加、删除好友,请求和接受好友请求。 9. 聊天记录存储,可以本地存储或者同步到服务器。 10. 通知机制,当有新消息时,通过Notification API发送通知提醒用户。 五、挑战与优化 1. 网络...
3. `Roster`:处理用户的好友列表,包括添加、删除好友以及获取好友在线状态。 4. `Presence`:表示用户的在线状态,如在线、离线、隐身等。 5. `Activity`和`Fragment`:这些是Android UI组件,用于展示聊天界面、...
开发人员可以利用这些库来开发XMPP客户端,并实现用户注册、登录、发送接收消息、获取好友状态等功能。 提到的Eclipse和MyEclipse IDE是常用的Android开发环境。在这些集成开发环境中,可以方便地编写代码、管理...
6. 好友管理:使用ServiceDiscoveryManager查找并添加好友,管理好友列表。 7. 离线消息处理:配置Asmack处理离线消息的能力,确保用户上线时能收到离线期间的未读消息。 需要注意的是,由于Asmack库是基于Java的,...