Android 기술 Q&A 
Q&A 게시판에 질문을 남기신 글에 대한 답변/덧글/쪽글에 대한 Push 메일 서비스를 받고자 하시는 분들은
☞ Push 메일 서비스 공지를 필독하시기 바랍니다.
Smack 관련 질문드려요~
작성자
작성일 2008-11-28 (금) 15:24
ㆍ추천: 0  ㆍ조회: 11026      
IP: 210.xxx.89
첨부#1 CrazyTalk.zip (1,873KB) (Down:62)
안녕하세요. 제가 Smack을 이용해 메신져를 만들어 보려고 노력중인데요...(사실은 배껴보는 중이죠-_-;;)
무슨 이유에서 인지... 이게 도대체가 연결이 안되는군요... 계속된 Exception...orz
 

 
이런 메시지들이 뜨는데요... Socket연결이 잘 못 된거 같은데 어디서 문제인지 잘 모르겠습니다...ㅠㅠ
제발 도와주세요 (ㅠㅠ)(__)
 
 
소스는... SettingDialog.java
package kr.co.samsung.CrazyTalk;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Presence;
import android.app.Dialog;
//import android.content.Context;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SettingDialog extends Dialog implements android.view.View.OnClickListener{
 
 private CrazyTalk xmppClient;
 
 public SettingDialog(CrazyTalk xmppClient) {
  super(xmppClient);
  this.xmppClient = xmppClient;
  // TODO Auto-generated constructor stub
 }
 
 protected void onStart() {
  super.onStart();
  setContentView(R.layout.settings);
  getWindow().setFlags(4, 4);
  setTitle("XMPP Settings");
  Button ok = (Button)findViewById(R.id.ok);
  ok.setOnClickListener(this);
 }
 
 public void onClick(View v) {
//  String host = getText(R.id.host);
//  String port = getText(R.id.port);
//  String service = getText(R.id.service);
  String username = getText(R.id.userid);
  String password = getText(R.id.password);
  
  ConnectionConfiguration connConfig = new ConnectionConfiguration("localhost", 5222);
  connConfig.setCompressionEnabled(true);
  connConfig.setSASLAuthenticationEnabled(true);
  connConfig.setReconnectionAllowed(true);
  XMPPConnection connection = new XMPPConnection(connConfig);
  try {   
   connection.connect();
   Log.i("XMPPClient", "[SettingDialog] Connected to "+ connection.getHost());
   
  } catch (XMPPException ex) {
   Log.e("XMPPClient", "SettingDialog Failed to connect to " + connection.getHost());
   xmppClient.setConnection(null);
  } catch (Exception e) {
   Log.e("Sleep Error", "God!");
  }
  
  try {
   connection.login(username, password);
   Log.i("XMPPClient","Logged in as " + connection.getUser());
   
   Presence presence = new Presence(Presence.Type.available);
   connection.sendPacket(presence);
   xmppClient.setConnection(connection);
  } catch(XMPPException ex) {
   Log.e("XMPPClient","[SettingsDialog] Failed to log in as "+username);
   xmppClient.setConnection(null);
  }
  dismiss();
 }
 private String getText(int id) {
  EditText widget = (EditText) this.findViewById(id);
  return widget.getText().toString();
 }
 
}

CrazyTalk.java
package kr.co.samsung.CrazyTalk;

import java.util.ArrayList;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.filter.MessageTypeFilter;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smack.util.StringUtils;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
 
 
public class CrazyTalk extends Activity {
    /** Called when the activity is first created. */
 
 private ArrayList<String> messages = new ArrayList<String>();
 private Handler mHandler = new Handler();
 private SettingDialog mDialog;
 private EditText mRecipient;
 private EditText mSendText;
 private ListView mList;
 private XMPPConnection connection;
 
 
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mRecipient =(EditText)this.findViewById(R.id.recipient);
        mSendText = (EditText)this.findViewById(R.id.sendText);
        mList = (ListView)this.findViewById(R.id.listMessages);
        setListAdapter();
       
        mDialog = new SettingDialog(this);
       
        Button setup = (Button)this.findViewById(R.id.setup);
        setup.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
          mHandler.post(new Runnable() {
           public void run() {
            mDialog.show();
           }
          });
         }
        });
        Button send = (Button)this.findViewById(R.id.send);
        send.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
          String to = mRecipient.getText().toString();
          String text = mSendText.getText().toString();
          
          Log.i("XMPPClient", "Sending Text [ " + text + "] to ["+ to +"]");
          Message msg = new Message(to, Message.Type.chat);
          msg.setBody(text);
          connection.sendPacket(msg);
          messages.add(connection.getUser()+":");
          messages.add(text);
          setListAdapter();
         }
        });
    }
 public void setConnection(XMPPConnection connection) {
  this.connection = connection;
  if(connection != null) {
   PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
   connection.addPacketListener(new  PacketListener() {
    public void processPacket(Packet packet) {
     Message message = (Message) packet;
     String fromName = StringUtils.parseBareAddress(message.getFrom());
     Log.i("XMPPClient", "Got text [" + message.getBody() + "] from [" + fromName +"]");
     messages.add(fromName+":");
     messages.add(message.getBody());
     mHandler.post(new Runnable() {
      public void run() {
       setListAdapter();
      
      }
     });
    }
   }, filter);
  }
 }
 
 private void setListAdapter() {
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.multi_line_list_item, messages);
  mList.setAdapter(adapter);
 }
 
}
이름아이콘 회색
2008-11-28 22:04
서버가 잘못된거 같은데요. connection이 안되느데 localhost라고 하는 것은 단말 그 자체를 의미하게됩니다. 혹시 서버를 PC에 뛰워놓고 에뮬에서 localhost로 접속하려고 하시는 것은 아닌지요.
   
이름아이콘 달려라메시
2008-12-01 08:17
ㅠㅠ 넵... 지금 이 피시안에서 서버를 돌리면 어떻게 설정을 해야 하나요?
   
이름아이콘 회색
2008-12-02 22:53
아이피를 직접 쳐주시는 방법이 있을듯 합니다.
   
 
덧글 쓰기 0
3500
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
4753 안드로이드 풀빌드 준비 과정 중 질문입니다. 2008-11-24 9680
4752 개발자 등록 2008-11-24 8217
4751 Wifi Setting..... 2008-11-24 10298
4750 현재 화면 을 캡쳐 할수 있는 길이 있을까요? 2008-11-24 10882
4749 make sdk 2008-11-25 8293
4748 수동으로 빌드할때 오류~ 질문있습니다. 2008-11-25 10557
4747 Camera app 추가 방법 질문입니다. 2008-11-25 9300
4746 screen을 flip 하는 방법 (rotation) 문의 2008-11-25 10927
4745 Re..[오웬] Camera app 추가 방법 질문입니다. 2008-11-25 12330
4744 텍스트파일 읽기에 대해 질문드려요~ 2008-11-26 9618
4743 안드로이드 마켓 질문 2008-11-26 8101
4742 make sdk error2 2008-11-26 8374
4741 binder driver 관련 2008-11-26 12406
4740 touch 잡기...어떤과정을 거쳐야 하나요?? 2008-11-26 8922
4739 초보질문입니다... (gui선택버튼 관련) 2008-11-27 8148
4738 ListView의 아이템이 클릭이 안되요. 2008-11-27 8434
4737 Android Input device porting (keyboard,touch) 2008-11-27 11654
4736 퀄컴소스에 Dalvik porting 해보신 분 계신가요? 2008-11-27 9118
4735 다시 한번 질문을 드리겠습니다... 2008-11-27 10423
4734 에뮬에서 웹브라우저를 통해 어플리케이션 설치하기.. 2008-11-27 11262
4733 Android porting 관련 질문 2008-11-27 10944
4732 APIDemo uninstall하고 새로 install하려는데 안되요.... 2008-11-28 10603
4731 [Tips]에뮬 홈화면을 원하는 자기사진으로 꾸미기.. 2008-11-28 8431
4730 Full build시 특정 app을 제외시키는 script 같은 것이 있나요.. 2008-11-28 8932
4729 Smack 관련 질문드려요~ 2008-11-28 11026
4728 ApiDemo에서 MediaPlayer 질문입니다. 2008-11-28 40034
4727 타이머에 대해 질문있어요~ 2008-11-28 8439
4726 안드로이드 포팅 하드웨어 스펙 2008-11-28 8947
4725 G1을 어떻게 구할수 있을까요? 2008-11-28 7947
4724 소스를 debug모드로 빌드 시 에러나는 문제 2008-11-28 8232
4723 슬라이드를 열었을때 View가 변하지 않게하는 방법 아시나요?.. 2008-11-29 8458
4722 웹서버와 연동 질문입니다 2008-11-29 9410
4721 intent 질문입니다. ㅠ_ㅠ 2008-11-29 8449
4720 R 관련 질문하나 드려도 될까요? 2008-11-29 8398
4719 로컬 비디오 플레이 실행 질문~ 2008-12-01 8418
4718 double buffering 관련 질문. 2008-12-01 9151
4717 안드로이드 어플 + trace32 2008-12-01 8514
4716 apache xml-rpc 관련.. 2008-12-01 8222
4715 안드로이드 포팅 보드 구입 관련 질문 드려요 2008-12-01 8383
4714 에뮬테이터에 시간이 흐르지 않습니다. 왜그럴까요?.. 2008-12-02 8110
4713 android application 실행 문제 2008-12-02 11981
4712 NFS로 포팅관련 질문드립니다 2008-12-02 9517
4711 Full source에서 IM만 따로 build하려면 어떻게 하나요.??.. 2008-12-02 9210
4710 Re..NFS로 포팅관련 질문드립니다 2008-12-02 9315
4709 Android file system에 대한 질문입니다. 2008-12-03 9047
4708 MediaPlayer 관해서....ㅠㅠ 2008-12-03 10461
4707 HAL Library Porting 관련 질문! 2008-12-03 8894
4706 다시 질문 입니다....ㅜㅜ 2008-12-03 8443
4705 SDK 1.0과 full source code의 관계.?? 2008-12-04 9285
4704 좀 갈켜주세요..ㅠㅠ 2008-12-04 8050
12345678910,,,101