基于xmpp openfire smack 开发(四)单聊

1、

class Thread1 extends Thread {
		@Override
		public void run() {
			uid = preferences.getString("uid", "0");
			if (!uid.equals("0")) {
				Login(Content.DaTingSERVICE_URL, 5222, uid, "111111", uid + "@"
						+ Content.DaTingSERVICE_Name);
			} else {
				handler.sendEmptyMessage(4);
				Intent intent = new Intent(SiXinActivity.this,
						LoginActivity.class);
				SiXinActivity.this.startActivity(intent);
				exitApp();
			}
		}
	}
2、

public void Login(final String ServerIP, final int serverport,
			final String Username, final String Password, String userid) {
		UserId = userid;

		preferences = GoosunApplication.mApplication.getPreferences();
		User = WonickName + "#" + uid + "#" + WoUrl;
		connConfig = new ConnectionConfiguration(ServerIP, serverport,
				Content.DaTingSERVICE_Name);
		connConfig.setReconnectionAllowed(true);
		connConfig.setSASLAuthenticationEnabled(false);
		connConfig
				.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
		xmppConnection = new XMPPConnection(connConfig);

		new Thread() {
			@Override
			public void run() {
				try {
					xmppConnection.connect();
					xmppConnection.login(Username, Password);
					RegisterMessageListener();
				} catch (Exception ex) {
					ex.printStackTrace();
					handler.sendEmptyMessage(3);
				}
			}
		}.start();
	}
3、
// 注册单人对话监听
	protected void RegisterMessageListener() {
		chatManager = xmppConnection.getChatManager();
		chatManager.addChatListener(new ChatManagerListener() {
			public void chatCreated(Chat chat, boolean arg1) {
				chat.addMessageListener(new MessageListener() {
					public void processMessage(Chat arg0, Message message) {
						String msg = message.getBody();
						String fromString = message.getFrom();
						if (msg.contains("危险")) {
						}
						sendhandlemsg(msg,fromString,0);
					}
				});
			}
		});
	}

4、

// 发送1 to 1的消息
	public void semdmessage(final String msg, final String msgto) {
		// 初始化发送消息
		chat = chatManager.createChat(msgto, null);
		new Thread() {
			@Override
			public void run() {
				try {
					chat.sendMessage(msg);
					sendhandlemsg(msg,User,1);
				} catch (XMPPException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}.start();
	}
5、

public void sendhandlemsg(String msg,String fromString,int i)
	{
		entity = new ChatMsgEntity();
		fromString=TanickName+"#"+TaUid+"#"+TaUrl;
		
		if(i==0){
			entity.setMsgType(true);
			entity.setName(fromString);
		}else{
			entity.setMsgType(false);
			entity.setName(User);
		}
		entity.setDate(new Date());
		entity.setText(msg.toString());
		mDataArrays.add(entity);

		handler.sendEmptyMessage(1);
	}
6、

	private void send() {
		contString = mEditTextContent.getText().toString();
		if ("".equals(contString.trim())) {
			Toast.makeText(this, "不能发送空白消息", Toast.LENGTH_SHORT).show();
		} else if (contString.length() > 0) {
			semdmessage(contString, TaUid + "@" + Content.DaTingSERVICE_Name);
			msgStr = null;
			mEditTextContent.setText(null);
		}
	}


7、

public Handler handler = new Handler(Looper.myLooper()) {
		public void handleMessage(android.os.Message msg) {
			super.handleMessage(msg);
			switch (msg.what) {
			case 1:
				mAdapter.notifyDataSetChanged();
				mListView.setSelection(mListView.getCount() - 1);
				zhuangtai = true;
				break;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值