2015-04-07 3 views
1

Я пытаюсь подключиться к GTalk из моего Android приложения с помощью Смак 4.1, но каждый раз, когда я пытался подключиться, он показывает ошибку: javax.net.ssl.SSLHandshakeException: Рукопожатие не удалосьПодключение к GTalk с помощью Смак 4,1

Ниже мой код:

private class ConnectionThread extends AsyncTask<Void, Void, Boolean> { 

     @Override 
     protected Boolean doInBackground(Void... params) { 
      boolean isConnected = false; 
      XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration 
        .builder(); 

      config.setSecurityMode(ConnectionConfiguration.SecurityMode.required); 
      config.setUsernameAndPassword(username,password); 
      config.setServiceName(service); 
      config.setHost(host); 
      config.setPort(port); 
      config.setDebuggerEnabled(true); 
      //config.setCompressionEnabled(false); 
      config.setSocketFactory(SSLSocketFactory.getDefault()); 

      connection = new XMPPTCPConnection(config.build()); 

      XMPPConnectionListener connectionListener = new XMPPConnectionListener(); 
      connection.addConnectionListener(connectionListener); 

      try { 
       connection.connect(); 

       isConnected = true; 
      } catch (Exception e) { 
       Log.e(TAG,"Unable to connect to server = " + e.toString()); 
      } 
      return isConnected; 
     } 

    } 

Где хозяин, имя пользователя, пароль и обслуживание порта исходя из значений String.xml:

<?xml version="1.0" encoding="utf-8"?> 

<string name="app_name">XmppLab</string> 
<string name="action_settings">Settings</string> 
<string name="connect">Connect</string> 
<string name="host">talk.google.com</string> 
<string name="port">5222</string> 
<string name="username">[email protected]</string> 
<string name="password">password</string> 
<string name="service">gmail.com</string> 

Пожалуйста, посоветуйте мне что-то пропустил здесь? И действительно ценю любую помощь.

+0

'config.setSocketFactory (SSLSocketFactory.getDefault());' Почему? – Flow

+0

Привет, поток, спасибо за подсказку. Я делюсь моим отредактированным кодом ниже и надеюсь, что это поможет другим с той же проблемой. –

+0

@Flow я получаю 'ExceptionInInitializeError', когда я пытаюсь инициализировать' XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration .builder(); 'это поведение известно? –

ответ

1

Спасибо за подсказку. Я изменить свой код, как показано ниже, и теперь он может подключиться к Gtalk:

config.setSecurityMode(ConnectionConfiguration.SecurityMode.required); 
      config.setUsernameAndPassword(username,password); 
      config.setServiceName(service); 
      config.setHost(host); 
      config.setPort(port); 
      config.setDebuggerEnabled(true); 
      //config.setCompressionEnabled(false); 
      //config.setSocketFactory(SSLSocketFactory.getDefault());