package com.andbase.im.util;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.Registration;
import org.jivesoftware.smack.provider.ProviderManager;
import android.content.Context;
import com.andbase.global.Constant;
import com.andbase.im.service.MessageIQProvider;
import com.andbase.im.service.MessageListener;
import com.andbase.im.service.NotificationIQ;
/**
* © 2012 amsoft.cn
* 名称:IMUtil.java
* 描述:TODO
* @author Administrator
* @date 2015年7月25日 上午10:01:00
* @version v1.0
*/
public class IMUtil {
public static void login(Context context,String userName,String password){
try {
ConnectionConfiguration connConfig = new ConnectionConfiguration(Constant.xmppHost, Constant.xmppPort);
connConfig.setReconnectionAllowed(true);
connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
connConfig.setSASLAuthenticationEnabled(true);
connConfig.setTruststorePath("/system/etc/security/cacerts.bks");
connConfig.setTruststorePassword("changeit");
connConfig.setTruststoreType("bks");
XMPPConnection connection = new XMPPConnection(connConfig);
connection.connect();
// 设置消息接收器
ProviderManager.getInstance().addIQProvider("notification", "androidpn:iq:notification", new MessageIQProvider());
PacketFilter packetFilter = new PacketTypeFilter(NotificationIQ.class);
connection.addPacketListener(new MessageListener(context), packetFilter);
connection.login(userName, password, "AndroidPNClient");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void register(String userName,String password){
try {
ConnectionConfiguration connConfig = new ConnectionConfiguration(Constant.xmppHost, Constant.xmppPort);
connConfig.setReconnectionAllowed(true);
connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
connConfig.setSASLAuthenticationEnabled(true);
connConfig.setTruststorePath("/system/etc/security/cacerts.bks");
connConfig.setTruststorePassword("changeit");
connConfig.setTruststoreType("bks");
XMPPConnection connection = new XMPPConnection(connConfig);
connection.connect();
// 注册、传递参数过程
Registration registration = new Registration();
registration.setType(IQ.Type.SET);
registration.addAttribute("username", userName);
registration.addAttribute("password", password);
connection.sendPacket(registration);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void quit(String userName){
try {
} catch (Exception e) {
e.printStackTrace();
}
}
}