功能的实现结果:能够使自己编写客户端与spark客户端信息通讯,将接受到的信息更新到textview上。

1.下载openfire并安装。设置域名,添加用户

2.下载安装spark客户端

3.jar包 :asmack.jar

4.权限:

 <uses-permission android:name="android.permission.INTERNET"/>

5.简单布局:

     <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="login"
android:text="登录"
android:id="@+id/button" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendMsg"
android:text="发送消息"
android:id="@+id/button2"
android:layout_gravity="center_vertical" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/content" />

6.Activity代码:

 public class MainActivity extends AppCompatActivity {

     XMPPConnection con;
TextView tv;
//用于刷新textview的信息text
Handler hand=new Handler(){
@Override
public void handleMessage(android.os.Message msg) {
tv.setText(msg.obj.toString());
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
initView();
} private void initView() {
tv= (TextView) findViewById(R.id.content);
} private void init() {
new Thread(){
@Override
public void run() {
try {
//指定连接的ip地址和端口 以及服务器的域名
ConnectionConfiguration config=new ConnectionConfiguration("10.8.167.75",5222,"gxw");
//连接对象
con =new XMPPConnection(config);
//开启连接
con.connect();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start(); }
public void login(View v){
try {
//登陆的用户账号和密码
con.login("bb","123456x");
System.out.print("");
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMsg(View v){ ChatManager cm = con.getChatManager();
cm.addChatListener(new ChatManagerListener() {
@Override
public void chatCreated(Chat chat, boolean b) {
chat.addMessageListener(new MessageListener() {
@Override
public void processMessage(Chat chat, Message message) {
android.os.Message msg= android.os.Message.obtain();
if (!TextUtils.isEmpty(message.getBody())){
msg.obj=message.getBody();
hand.sendMessage(msg);
}
}
});
}
}); //aa为进行通信的账号,@后为域名
Chat chat = cm.createChat("aa@gxw",null);
try {
chat.sendMessage("1111111");
} catch (Exception e) {
e.printStackTrace();
}
}
}

最新文章

  1. Iterate Files by Tcltk
  2. ORA-01078: failure in processing system parameters &amp; LRM-00109: could not open parameter file
  3. iOS基础篇(十七)——UIGestureRecognizer用法
  4. poj3468A Simple Problem with Integers(线段树,在段更新时要注意)
  5. Trapping Messages Sent to an Application
  6. Markdown简单语法总结
  7. C#初步接触
  8. C语言入门(13)——循环
  9. SpringData JPA的学习笔记之环境搭建
  10. android设置横竖屏
  11. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
  12. 洛谷P3366 【模板】最小生成树(Boruvka算法)
  13. MySQL高级知识(四)——Explain
  14. 16.求Sn=a+aa+aaa+aaaa.......之值
  15. winform获取EXE图片
  16. Spring整合struts的配置文件存放问题
  17. C# 调节图片亮度
  18. vector详讲(三)实例
  19. MySQL 5.1参数
  20. lua之base64加密和解密算法。

热门文章

  1. 01--Qt扫盲篇
  2. Linux 中文件名颜色所代表的属性
  3. http请求后台报406错误
  4. 【数据分析学习】016-numpy数据结构
  5. node——模块化
  6. [POJ 3621] Sighting Cows
  7. Python编程:从入门到实践 - matplotlib篇 - Random Flow
  8. 如何打开WCF测试客户端
  9. Oracle-查看用户对象信息
  10. win7下virtualbox遇到的问题