Asmact实现IM客户端所遇到的问题及解决方案

报错: NoFoundClassError

原因:  smact.jar是windows上的IM实现JAR包,因为android对JAVA类进行了修改,故不能直接使用此JAR包

解决方案:  android客户端对应的JAR包是asmact.jar. smact官网没有asmact下载,下载地址为:http://code.google.com/p/asmack/downloads/list  asmack-2010.05.07.jar

 

报错: java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore jks implementation not found

原因:  需要SASL验证,取消掉此验证。代码:

  configuration.setReconnectionAllowed(true);        
  configuration.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);         
  configuration.setSendPresence(true);
  configuration.setSASLAuthenticationEnabled(false);
  configuration.setRosterLoadedAtLogin(false);

 

手机端能发送消息,但不能接受消息?

原因: 具体原因不清楚。

ChatManager与Chat区别:
ChatManager用于监控当前所有chat。可以使用createChat(String userJID, MessageListener listener)创建一个聊天。
Chat用于监控两个用户间的一系列message。使用addMessageListener(MessageListener listener)当有任何消息到达时将会触发listener的processMessage(Chat chat, Message message)

电脑端使用chat就可以发送并接受消息

手机端可以使用chat发送消息,但接受消息只能使用ChatManager。具体代码:

              //电脑端可以使用以下语句发送、接受消息     
                 final MessageListener listener=new MessageListener() {
					@Override
					public void processMessage(Chat arg0, Message arg1) {
						receivdMsgString=arg1.getFrom()+":"+arg1.getBody();
						System.out.println("processMessage:"+receivdMsgString);
						handler.sendEmptyMessage(1);
					}
				};
                   chat =connection.getChatManager().createChat(targnameString,listener);


手机接收发送消息:

  

 final MessageListener listener=new MessageListener() {
     @Override
     public void processMessage(Chat arg0, Message arg1) {
      receivdMsgString=arg1.getFrom()+":"+arg1.getBody();
      System.out.println("processMessage:"+receivdMsgString);
      handler.sendEmptyMessage(1);
     }
    };                //处理监听接受                 
 connection.getChatManager().addChatListener(new ChatManagerListener(){
            @Override
            public void chatCreated(Chat chat, boolean createdLocally){
                if (!createdLocally)
                    chat.addMessageListener(listener);
            }
    });
        //只能监听发送    
  chat =connection.getChatManager().createChat(targnameString,listener);


 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值