Android 即使通讯
来源:互联网 发布:学尤克里里下什么软件 编辑:程序博客网 时间:2024/04/25 04:34
手机上基于位置的社交应用越来越多了, 以找人为目的以不能满足需求,(找到人不说话(不能说话),倒还不如不找。) 所有,即使通讯也在日益火爆着。
Xmpp 不多说,百度谷歌一大把。 (密聊好像就是用这个。我不是很确定。)
服务器端采用openfire
客户端 用smack
下面开始,只做客户端,
首先创建连接,就和我们创建DBHelper 连接类差不多。
public static final String PASSWORD = "123456"; // 密码public static final String VERSIONNAME = "android1.0"; // 版本号static Connection xConnection;/** * 创建连接 * * @param userid * @param password * @throws XMPPException */public static Connection xmppConn(Context context) throws XMPPException{// xConnection.isConnected() == falseif (xConnection == null){final ConnectionConfiguration connectionConfig = new ConnectionConfiguration("服务器地址", 5222);connectionConfig.setCompressionEnabled(false);connectionConfig.setSASLAuthenticationEnabled(false);XMPPConnection.DEBUG_ENABLED = true;xConnection = new XMPPConnection(connectionConfig);}return xConnection;}
好了,这样算是创建好连接了, 下一步就是登录。
final Connection connection = MyXMPPConnection.xmppConn(getApplicationContext()); // 得到连接对象 final boolean isConn = connection.isConnected(); //是否连接成功 成功返回true,失败false if (isConn == false) // { connection.connect(); // 这里才是连接 // 这里首先去登录,如果登录失败,然后再去注册一个,接着登录 connection.login("用户名", MyXMPPConnection.PASSWORD, MyXMPPConnection.VERSIONNAME); // 登录 参数说明(用户名,密码,版本号) if (connection.isAuthenticated() == false) { connection.getAccountManager().createAccount("用户名", MyXMPPConnection.PASSWORD); // 注册 connection.login("用户名", MyXMPPConnection.PASSWORD, MyXMPPConnection.VERSIONNAME); // 登录 }
用户登录成功,接下来创建聊天室 。
ChatManager chatManager = conncetion.getChatManager(); String hostName = connection.getServiceName(); Chat newChat = chatManager.createChat(UserId + "@" + hostname + "/" + MyXMPPConnection.VERSIONNAME, msgListender); // 参数说明,聊天对象userid,消息监听器 newChat.sendMessage("我草,你日吗?");
这样就可以发送一条消息了。
只发不收不地道,下来添加接收消息监听器 :
其实就是上面创建聊天室的第二个参数,只需要写完它就OK了。
class msgListener implements MessageListener{public void processMessage(Chat arg0, org.jivesoftware.smack.packet.Message arg1){// TODO Auto-generated method stub if (arg1 instanceof org.jivesoftware.smack.packet.Message) { org.jivesoftware.smack.packet.Message messageIQ= (org.jivesoftware.smack.packet.Message)arg1; if (((org.jivesoftware.smack.packet.Message) arg1).getType()==Type.chat){ //假如这个监听放在对方那边,不出意外这里body体里面就会是 --- 我草,你日吗 ? String msgContext = messageIQ.getBody(); // 消息体 String msgFromAll = messageIQ.getFrom(); // 发送人 String msgToAll = messageIQ.getTo(); // 接收人 } } }}
写完这些就可以实现基本的文字聊天,当然发表情也是可以的。
也是刚开始学这一块。
说的不对的地方别望大神别拍我。
并真心希望大神指导。
小弟谢过了。
- Android 即使通讯
- 即使通讯软件
- 关于IM即使通讯
- 企业即使通讯方案分析
- IM(即使通讯)相关问题
- 服务器端集成环信即使通讯
- java nio做即使通讯的使用
- 即使通讯-融云SDK的集成
- 即使
- 【我就看看不说话】socket 即使通讯
- 我要鼓足勇气开始即使通讯模块
- 即使通讯,讯飞语音的一些网址
- 《环信支持千万并发即使通讯的技术要点》阅读摘要
- webrtct: talky, OTALK,web4 基于webrtc的 即使通讯 开源代码!
- 使用leancloud实现登录注册,数据存储,即使通讯等功能
- 《环信支持千万并发即使通讯的技术要点》阅读摘要
- 使用WebSocket实现即使通讯(实现一个群聊的聊天室)
- 使用WebSocket实现即使通讯(实现一个群聊的聊天室)
- x86平台下linux配置编译与启动
- 在ios中使用单例模式编程
- windows与linux下的\r\n
- 0.ring0-新建SSDT项进行通讯(随手代码)
- VS2008快捷键说明
- Android 即使通讯
- socket accept失败
- Java对象序列化使用基础
- 数据结构之-------优化的冒泡排序
- android 存储 SharedPreferences
- android SQLite数据库
- android 四大重要的组件之ContentProvider
- git初步使用之push 错误:fatal: The remote end hung up unexpectedly
- linux mint 12 挂载移动硬盘后的移除问题