Android asmark 使用介绍

XMPP协议简介

XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。

这篇文章有基本的介绍,http://blog.csdn.net/xutaozero21/article/details/4873439

IM

Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。当前IM 几乎作为每个上网者必然使用的工具,在国外的大型企业中有一些企业级的IM应用,但是其商业价值还没完全发挥出来。设想既然XMPP 协议是一个公开的协议,那么每个企业都可以利用它来开发适合本身企业工作,提高自身生产效率的IM;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可以边游戏边聊天,也可以开发出适合游戏本身的IM 应用,比如说一些游戏关键场景提醒功能,团队语音交流等等都可以基于IM来实现。

这里使用openfire、smack和spark,完成xmpp IM实现,这里简单介绍一下这3个的作用:

openfire主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。

Smack主要是xmpp协议的实现,提供了一套很好的api,所以下面操作xmpp都是通过使用smack的api来实现,当然因为是在android里,所以使用的是asmack这个包,里面方法跟smack包差不多。

Spark 是IM客户端的实现,其实就是使用了smack 的api实现的。

ASmack 使用

一、连接服务器

//配置文件  参数(服务地地址,端口号,域)ConnectionConfiguration configuration = new ConnectionConfiguration("192.168.0.110",5222,"");//设置不需要SAS验证configuration.setSASLAuthenticationEnabled(false);//设置安全类型configuration.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

二、注册模块

注册有两种方法:

一种是用createAccount ,不过我测试了一下发现不能创建用户,具体原因不详,下面介绍第二种。

AccountManager ??accountManager?? = conn.getAccountManager();try {    ??accountManager??.createAccount("saliya", "123456");} catch (XMPPException e) {    e.printStackTrace();}

一种是通过Registration类进行

??Registration?? reg = new ??Registration??();//设置类型reg.setType(IQ.Type.SET);//发送到哪reg.setTo(conn.getServiceName());//设置用户名reg.setUsername("keven1");//设置密码reg.setPassword("123456");//设置其余属性(可选)reg.addAttribute("android", "geolo_createUser_android");

//创建包过滤器PacketFilter filter = new AndFilter(new PacketIDFilter(reg.getPacketID()), new PacketTypeFilter(IQ.class));//创建包收集器PacketCollector collector = conn.createPacketCollector(filter);//发送包conn.sendPacket(reg);

//获取返回信息IQ result = (IQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());// 取消收集collector.cancel();//通过返回信息判断if (result == null) {    Toast.makeText(getApplicationContext(),"服务器异常" ,Toast.LENGTH_SHORT).show();} else if (result.getType() == IQ.Type.ERROR) {    if (result.getError().toString().equalsIgnoreCase("conflict(409)")) {        Toast.makeText(getApplicationContext(),"注册失败,用户已存在" , Toast.LENGTH_SHORT).show();    } else {        Toast.makeText(getApplicationContext(), "注册失败", Toast.LENGTH_SHORT).show();    }} else if (result.getType() == IQ.Type.RESULT) {    Toast.makeText(getApplicationContext(), "注册成功", Toast.LENGTH_SHORT).show();}

三、登录

1、登录

conn.login("kooeasy","********");

2、获取联系人

Roster roster = conn.getRoster();    //获取名册Collection<RosterEntry> entries = roster.getEntries();    //获取联系人

三、发送消息

//创建聊天管理器ChatManager chatManager = conn.getChatManager();//创建一个聊天:(用户,聊天监听)再此添加聊天监听无法监听Bug?Chat msg = chatManager.createChat(user, null);//给聊天管理器添加了聊天监听chatManager.addChatListener(new ChatManagerListener() {    @Override    public void chatCreated(Chat chat, boolean b) {        //给聊天,添加监听        chat.addMessageListener(new MessageListener() {            @Override            public void processMessage(Chat chat, Message message) {                Log.i("MSG", message.getBody());            }        });

   }});try {    //开始发送消息    msg.sendMessage("你好 能收到吗?");} catch (XMPPException e) {    e.printStackTrace();}

更多信息相关介绍会 在后面修改用 smack 4.0

时间: 2024-12-08 08:55:17

Android asmark 使用介绍的相关文章

Android多媒体开发介绍(转)

Android多媒体开发介绍 转自:http://blog.csdn.net/reiliu/article/details/9060557 一.       多媒体架构 基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4.H.264.MP3.AAC.AMR.JPG.PNG.GIF等.从功能上分为两部分,一是音/视频的回放(PlayBack),二是音视频的纪录(Recorder). CODEC(编解码器)使用OpenMAX 1L

我的Android第三章:Android的组件介绍

小编摘录了Android文档介绍Android四大组件的基本内容,感觉文档的内容写的很详细所以小编将它写入了博客 Android 使用Java语言开发.Android SDK 工具编译代码-以及任意数据并连同相关资源打包进一个Android 包内,它是一个以.apk 为后缀的压缩文件. 一个 .apk 文件中的 所有代码就是一个程序.这个.apk文件就用于在Android设备上安装这个程序. 一旦安装成功,这个Android程序就拥有了自己独立的运行沙盒(沙盒是在受限的安全环境中运行应用程序的一

Android控件介绍

Android控件介绍 多选按钮(CheckBox) CheckBox有两个常用的事件,OnClickListener事件和OnClickChangeListener事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w

转android intent action 介绍大全

一些常用的Intent: Uri Action 功能 备注 geo:latitude,longitude Intent.ACTION_VIEW 打开地图应用程序并显示指定的经纬度   geo:0,0?q=street+address Intent.ACTION_VIEW 打开地图应用程序并显示指定的地址   http://web_address Intent.ACTION_VIEW 打开浏览器程序并显示指定的URL   https://web_address Intent.ACTION_VIEW

Android NDK 简单介绍、工具安装、环境配置

NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. * NDK提供了一系列的工具,帮助开发人员高速开发C(或C++)的动态库,并能自己主动将so和java应用一起打包成apk.这些工具对开发人员的帮助是巨大的. * NDK集成了交叉编译器,并提供了对应的mk文件隔离平台.CPU.API等差异,开发者仅仅须要简单改动mk文件(指出"哪些文件须要编译"."编译特性要求"等),就能够创建出so. * NDK能够自己主动地将so和Ja

Android Fragment的介绍与使用(案例Demo)

应用场景: 众所了解Android上的界面展示都是通过Activity实现的,但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了.为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局.Fragment通常是嵌套在Activity中使用的.首先需要注意,Fragment是在3.0版本引入的,如果你使用的是3.0之前的系统,需要先导入android-supp

Android Fragment 基本介绍

Android Fragment 基本介绍 Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的. 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块. 可以把Fragment设计成可以在多个Activity中复用的模块. 当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善

Android通讯录数据库介绍与基本操作(增删改查)

Android通讯录数据库介绍与基本操作(增删改查) 2014年2月21日 Android通讯录管理总结 这几天导师安排我一个任务就是研究一下Android通讯录获取联系人.通话记录.短信的方法,还有看看不同Android版本之间的异同是否能做到兼容之类的事情.Android通讯录这一块,我个人感觉是挺乱的,网上一堆关于查询本地数据库获取联系人的方法,但似乎都没有仔细说明数据有哪些重要的表,它们之间有什么联系.下面是本人查询资料总结的一下知识点,方便童鞋们以后用到. http://xys2891

Android 电话系统框架介绍

在android系统中rild运行在AP上,AP上的应用通过rild发送AT指令给BP,BP接收到信息后又通过rild传送给AP.AP与BP之间有两种通信方式: 1.Solicited Response:Ap向Bp发送请求,Bp给Ap发送回复,该类型的AT指令及其回调函数以数组的形式存放在Ril_commands.h文件中: {数组中的索引号,请求回调函数,响应回调函数} [plain] view plaincopy {0, NULL, NULL},                   //no